User Agent

User-agent Attributes

Describes user-agent attributes.

AttributeTypeDescriptionExamplesStability
user_agent.namestringName of the user-agent extracted from original. Usually refers to the browser’s name. [1]Safari; YourAppExperimental
user_agent.originalstringValue of the HTTP User-Agent header sent by the client.CERN-LineMode/2.15 libwww/2.17b3; Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1; YourApp/1.0.0 grpc-java-okhttp/1.27.2Stable
user_agent.synthetic.typestringSpecifies the category of synthetic traffic, such as tests or bots. [2]bot; testExperimental
user_agent.versionstringVersion of the user-agent extracted from original. Usually refers to the browser’s version [3]14.1.2; 1.0.0Experimental

[1] user_agent.name: Example of extracting browser’s name from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the user_agent.original, the most significant name SHOULD be selected. In such a scenario it should align with user_agent.version

[2] user_agent.synthetic.type: This attribute MAY be derived from the contents of the user_agent.original attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.

[3] user_agent.version: Example of extracting browser’s version from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the user_agent.original, the most significant version SHOULD be selected. In such a scenario it should align with user_agent.name


user_agent.synthetic.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
botBot source.Experimental
testSynthetic test source.Experimental