Skip to content
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

Define standard, vendor-agnostic, language-agnostic instrumentation identity attributes #1094

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .chloggen/instrumentation-identity-attributes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
change_type: 'enhancement'
component: instrumentation
note: Add semantic conventions for instrumentation library identification.
issues: [1094, 1047]
37 changes: 37 additions & 0 deletions model/registry/instrumentation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
groups:
- id: registry.instrumentation.source
prefix: instrumentation.source
brief: >
Attributes identifying the source code of the instrumentation.
attributes:
- id: repo
type: string
brief: Link to the source repository of the instrumentation library.
examples: [https://github.com/user_or_org/repo, https://gitlab.com/user_or_group/repo]
stability: experimental
- id: target
type: string
brief: Build target used to differentiate multiple variants within the repo.
examples: ['opt', 'dev', 'asan_enabled', '//variant:a', '//variant:b']
stability: experimental
- id: registry.instrumentation.distribution
prefix: instrumentation.distribution
brief: >
Attributes identifying the distribution channel of the instrumentation.
attributes:
- id: source
type: string
brief: Link to the mode of distribution.
examples: [https://mvnrepository.com/, https://pypi.org/, https://packages.ubuntu.com/noble]
stability: experimental
- id: package
type: string
brief: Source-specific name of the distribution bundle, project, etc.
examples: ['org.springframework.boot', 'tensorflow', 'python3-jwt']
stability: experimental
- id: artifact
type: string
brief: Library component inside the package if applicable.
examples: ['spring-boot-starter-web']
stability: experimental

Check failure on line 37 in model/registry/instrumentation.yaml

View workflow job for this annotation

GitHub Actions / yamllint

[empty-lines] too many blank lines (1 > 0)
29 changes: 29 additions & 0 deletions model/trace/instrumentation/instrumentation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
groups:
- id: scope.instrumentation.source
prefix: instrumentation.source
type: scope
brief: >
Scope attributes identifying the source code of the instrumentation.
attributes:
- ref: instrumentation.source.repo

Check failure on line 8 in model/trace/instrumentation/instrumentation.yaml

View workflow job for this annotation

GitHub Actions / yamllint

[indentation] wrong indentation: expected 6 but found 4
requirement_level: recommended
- ref: instrumentation.source.target
requirement_level:
recommended: >
If multiple equally valid options exist in
the same repo or if a non-standard/non-default option is used
- id: scope.instrumentation.distribution
prefix: instrumentation.distribution
type: scope
brief: >
Scope attributes identifying the instrumentation distribution channel.
attributes:
- ref: instrumentation.distribution.source

Check failure on line 21 in model/trace/instrumentation/instrumentation.yaml

View workflow job for this annotation

GitHub Actions / yamllint

[indentation] wrong indentation: expected 6 but found 4
requirement_level:
recommended: If readily available
- ref: instrumentation.distribution.package
requirement_level:
recommended: If readily available
- ref: instrumentation.distribution.artifact
requirement_level:
recommended: If applicable and readily available
Loading