Attribute Vocabulary

Attributes are a central concept used throughout Istio. You can find a description of what attributes are and what they are used for here.

A given Istio deployment has a fixed vocabulary of attributes that it understands. The specific vocabulary is determined by the set of attribute producers being used in the deployment. The primary attribute producer in Istio is Envoy, although Mixer and services can also introduce attributes.

Standard Istio attribute vocabulary

The table below shows the set of canonical attributes and their respective types. Most Istio deployments will have agents (Envoy or Mixer adapters) that produce these attributes.

NameTypeDescriptionKubernetes Example
source.ipip_addressThe IP address of the client that sent the request.10.0.0.117
source.portint64The port on the client that sent the request.9284
source.namestringThe fully qualified name of the application that sent the request.redis-master.my-namespace.svc.cluster.local
source.uidstringA unique identifier for the particular instance of the application that sent the request.kubernetes://redis-master-2353460263-1ecey.my-namespace
source.namespacestringThe namespace of the sender of the request.my-namespace
source.labelsmapA map of key-value pairs attached to the source. 
source.userstringThe user running the source application.service-account
target.ipip_addressThe IP address the request was sent to.10.0.0.104
target.portint64The port the request was sent to.8080
target.servicedns_nameThe hostname that was the target of the request.my-svc.my-namespace.svc.cluster.local
target.namestringThe fully qualified name of the application that was the target of the request. 
target.uidstringA unique identifier for the particular instance of the application that received the request. 
target.namespacestringThe namespace of the receiver of the request. 
target.labelsmapA map of key-value pairs attached to the target. 
target.userstringThe user running the target application.service-account
request.headersmapA map of HTTP headers attached to the request. 
request.idstringA unique ID for the request, which should be propagated to downstream systems. It should have a low probability of collision within a service in a temporal window measured in days. 
request.pathstringThe HTTP URL path including query string 
request.hoststringThe HTTP Host header. 
request.methodstringThe HTTP method. 
request.reasonstringThe request reason used by auditing systems. 
request.refererstringThe HTTP referer header. 
request.schemestringURI Scheme of the request 
request.sizeint64Size of the request in bytes. For HTTP requests this is equivalent to the Content-Length header. 
request.timetimestampThe timestamp when the target receives the request. This should be equivalent to Firebase “now”. 
request.useragentstringThe HTTP User-Agent header. 
response.headersmapA map of HTTP headers attached to the response. 
response.sizeint64Size of the response body in bytes 
response.timetimestampThe timestamp when the target produced the response. 
response.durationdurationThe amount of time the response took to generate. 
response.codeint64The response’s HTTP status code