-
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
process: Add build_id to executable #1329
Conversation
4779855
to
e73e719
Compare
Signed-off-by: Florian Lehner <[email protected]>
e73e719
to
2606fdc
Compare
If no further comments/updates happen before monday, I'd like to talk about this in the general semconv meeting. From what I can tell - you may need something stronger then semantic conventions here for profiling to work, but I want to confirm. Would you be able to attend the meeting Monday at 7am PDT to discuss in person? If not, I'll give the gist of the discusison here:
I think the answer to this question would resolve my concerns: Will profiles be useful if we can't find symbol tables for executables? If the answer is "not really": we can use semconv, but we may want to full up specify the attributes and force semconv to have them defined like these attributes |
Discussed in the meeting today - and I think the answer is no really, we need flexibility here, so these belong in semconv. |
… process.executable.[go|gnu].build_id Signed-off-by: Florian Lehner <[email protected]>
Signed-off-by: Florian Lehner <[email protected]>
Here is an example of how the build ID can be used with public available information, to get symbol/debug information:
|
Signed-off-by: Florian Lehner <[email protected]>
Signed-off-by: Florian Lehner <[email protected]>
With open-telemetry/opentelemetry-specification#4197 a specification was created for the use of |
Signed-off-by: Florian Lehner <[email protected]>
Signed-off-by: Florian Lehner <[email protected]>
Co-authored-by: Christos Kalkanis <[email protected]>
Drop `BuildIdKind` in favor of its semantic convention as defined in open-telemetry/semantic-conventions#1329.
Signed-off-by: Florian Lehner <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It can be done in a separate PR, but I think that https://github.com/open-telemetry/opentelemetry-specification/blob/a3248bfba81746acc1ba239cd98479cc1796b8e0/specification/profiles/mappings.md should exist in semantic conventions instead and be linked from the spec.
Reasons:
- you describe attribute names and requirement levels there - semconv allow you do it formally + automate MD rendering and possibly code generation for the group(s) of profiling-related attribute.
- you describe hashing algorithm there and anyone looking into semconv will need to go look into the spec. Same is true for the spec - you need to look into semconv anyway
So having everything described in details and in a formal way in semconv + having a short version in the spec would be easier to understand and navigate. Plus will have higher chance of staying consistent if any changes happen.
The group definition and markdown generation could be done in the same way as you already do for profile.frame
open-telemetry/semantic-conventions#1329 got merged, which introduces a semantic convention for build_ids. Use this semantic convention in favor of BuildIdKind, that will be dropped with open-telemetry/opentelemetry-proto#584. Signed-off-by: Florian Lehner <[email protected]>
open-telemetry/semantic-conventions#1329 got merged, which introduces a semantic convention for build_ids. Use this semantic convention in favor of BuildIdKind, that will be dropped with open-telemetry/opentelemetry-proto#584. Signed-off-by: Florian Lehner <[email protected]>
Drop `BuildIdKind` in favor of its semantic convention as defined in open-telemetry/semantic-conventions#1329. Co-authored-by: Tigran Najaryan <[email protected]>
Drop `BuildIdKind` in favor of its semantic convention as defined in open-telemetry/semantic-conventions#1329. Co-authored-by: Tigran Najaryan <[email protected]>
Signed-off-by: Florian Lehner <[email protected]> Co-authored-by: Christos Kalkanis <[email protected]> Co-authored-by: Alexander Wert <[email protected]> Co-authored-by: Liudmila Molkova <[email protected]>
## Changes Proposed change along with open-telemetry/semantic-conventions#1329 to clarify the use of `build_id` in the context of OTel Profiles. FYI: @open-telemetry/profiling-maintainers * [x] [`CHANGELOG.md`](https://github.com/open-telemetry/opentelemetry-specification/blob/main/CHANGELOG.md) file updated for non-trivial changes
## Changes Proposed change along with open-telemetry/semantic-conventions#1329 to clarify the use of `build_id` in the context of OTel Profiles. FYI: @open-telemetry/profiling-maintainers * [x] [`CHANGELOG.md`](https://github.com/open-telemetry/opentelemetry-specification/blob/main/CHANGELOG.md) file updated for non-trivial changes
This is a follow up from a discussion in #1188 (comment).
UPDATE:
build_id
for OTel ProfilesChanges
In the OTel Profiling use case, symbolization is important to resolve numeric addresses into human readable (function-) names. For this use case it is important to uniquely identify executables. There are existing and well established identifiers for executables, like GNU Build ID and Go Build ID.
This proposed change adds these identifiers to the
process.executable
attribute.Merge requirement checklist
[chore]
For visibility: @open-telemetry/profiling-maintainers