-
Notifications
You must be signed in to change notification settings - Fork 182
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
Clarify OS specific system attributes/metrics namespace #1403
Comments
Looking into this again, I find it weird that we encode the We hit the same in some host's resource attributes, like at the @open-telemetry/semconv-system-approvers check me here but wouldn't be just fine if we document in which operating systems a metric is supported and keep the name unified? |
Semantic Conventions Meeting Sept 23, 2024 SummaryThis was discussed in the semantic conventions meeting on Monday Sept 23 2024. The following is the summary. Dual precedenceWe started by discussing the current split of precedence between the OS being present in the name or not. There are multiple system-exclusive attributes and metrics that do and don't have OS in the name.
The goal is to come to a resolution about whether we should go one way or the other. Should there be an OS root namespace?First, there was some discussion about whether the different OS's should have their own namespaces, as done in Should the OS be in metric and attribute names?Then we discussed the metrics/attributes that actually do have the OS in the attribute names. I mentioned how the OS being in the name for certain things like Recommendation from Semconv Maintainers(CC @lmolkova and @jsuereth to ensure I'm not misrepresenting) Whether the OS should be in a name or not should come down to a judgement call based on the expected usecase of the metric/attribute. The goal of the System Semconv Working Group should be to apply our expertise in the observability of hosts/systems to provide a recommendation of the observability use cases. Things like "how healthy is my system", "how much memory is my system using", "are we close to crashing"; the highest level use cases that we expect users to run into. From those we should come up with the broader API that applies on either system, the most basic metrics that will allow them to observe the most common scenarios. When we have these kinds of metrics that are crucial and relatively general to any platform, likely we should not include the OS in these names, and this should comprise our generally recommended set of instrumentation. CC @open-telemetry/semconv-system-approvers (Me speaking now)
For much of this working group's time we've struggled with how Bucket 2 sometimes clashes against the way semconv metrics should work. Based on prior experiencing doing general observability of hosts as well as maintaining instrumentation in the Collector, we've found that there do exist users who want Bucket 2 information because they know exactly what they are looking for. I don't think we should leave them in the dust, we should make sure we provide conventions for them so that an OTel instrumentation provider knows how to provide that specific information. But we should try and delineate them from the more general recommended instrumentation, which should strive to be as user friendly as possible and really uphold the semantic conventions vision. (this isn't to say bucket 2 should flagrantly break rules, but to accept the exceptional situation they are in where we want to define direct mappings to OS concepts). We have already started discussions about moving towards stability and making decisions about what exactly our recommended set of instrumentation comprises. I think coming up with the most important use cases we want to cover will help us to determine what metrics fall into which buckets as described above. When we have a grasp on that separation, that will subsequently guide us for whether the OS should be in a given metric name or not. There are a number of metrics that are in question related to this issue (existing like |
Discussed on the 2024-10-10 System semantic conventions WG meeting, the next steps would be to
We also discussed existing conventions and what bucket do they fall into:
|
Area(s)
area:system
Is your change request related to a problem? Please describe.
Should system semantic conventions attributes and/or metrics specific to an OS include it as a namespace? At the moment, there are example of both options:
With {os} namespace
system.linux.memory.available
Without the {os} namespace
process.owner
; Windows specificprocess.open_file_descriptor.count
; Linux specific metricDescribe the solution you'd like
Whether all attributes/metrics specific to an OS contain the OS name in its namespace or not.
This concern was raised during a @open-telemetry/semconv-system-approvers SIG while considering the implications of using the
linux
prefix for theprocess.cgroup
attribute.Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: