-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pkg/ottl] Support for extracting OS attributes from UserAgent #35458
Comments
Pinging code owners:
See Adding Labels via Comments if you do not have permissions to add labels yourself. |
Hi @rogercoll, I took a quick look at this. It looks like the UA parser provides a function to parse Os info from a user agent string. In https://github.com/ua-parser/uap-core/blob/master/tests/test_os.yaml I found various user agent strings; however all expected test results consist of As a first iteration we could map:
Maybe we could also set What about the rest of the fields you proposed though? |
@ioandr Thanks for taking a look into this. Based on your research, there are three attributes which we cannot map 1:1 with the UA package parser function. I would purpose the following:
Although I would not make the previous a blocker, if is not clear/feasible their extractions, I would start with the 1:1 mapping with the UA package. |
Thanks for the follow-up @rogercoll, I will take a stab on this and open a PR shortly. |
Hi @rogercoll I opened a PR that adds For the time being I didn't add the extra fields for the reasons below:
Other than these, please let me know if I need to update any OTEL collector documentation, I couldn't find any relevant places other than the Semver documentation: https://opentelemetry.io/docs/specs/semconv/attributes-registry/os/ |
Component(s)
pkg/ottl
Is your feature request related to a problem? Please describe.
UserAgent semantic convention attributes can be extracted using the OTTL UserAgent function: https://github.com/pchila/opentelemetry-collector-contrib/tree/7da12e47eb9cf719aa593f9935bce9ba72844703/pkg/ottl/ottlfuncs#useragent (implemented in #34172)
The current extracted attributes are user_agent.name, user_agent.version and user_agent.original. But more information can be extracted from the
user_agent.original
string, like the OS related information.Semantic conventions proposal: open-telemetry/semantic-conventions#1433
Current Elastic ECS user_agent OS attributes: https://www.elastic.co/guide/en/ecs/current/ecs-user_agent.html#_field_reuse_30
Describe the solution you'd like
Extract additional fields from the user_agent:
Describe alternatives you've considered
No response
Additional context
This functionally would be very helpful for logs/metrics analytics, for example, a Nginx Ingress Controller log record contains the user-agent, this function could be configured in the collector to extract the OS information from all Nginx logs. Dashboards and alerts can be built over this information; OS with most errors? Which are the most common OS versions? etc.
The text was updated successfully, but these errors were encountered: