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; YourAppDevelopment
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.versionstringVersion of the user-agent extracted from original. Usually refers to the browser’s version [2]14.1.2; 1.0.0Development

[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.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 OS Attributes

Describes the OS user-agent attributes.

AttributeTypeDescriptionExamplesStability
user_agent.os.namestringHuman readable operating system name. [3]iOS; Android; UbuntuDevelopment
user_agent.os.versionstringThe version string of the operating system as defined in Version Attributes. [4]14.2.1; 18.04.1Development
user_agent.synthetic.typestringSpecifies the category of synthetic traffic, such as tests or bots. [5]bot; testDevelopment

[3] user_agent.os.name: For mapping user agent strings to OS names, libraries such as ua-parser can be utilized.

[4] user_agent.os.version: For mapping user agent strings to OS versions, libraries such as ua-parser can be utilized.

[5] 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.


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.Development
testSynthetic test source.Development