-
Notifications
You must be signed in to change notification settings - Fork 291
feat: introduce new service.criticality attribute (#2986) #3088
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
base: main
Are you sure you want to change the base?
feat: introduce new service.criticality attribute (#2986) #3088
Conversation
I need help with guidance on how to provide prototype for a newly introduced semantic convention attribute. Please, feel free drop your idea. Thanks in advance! |
|
Note: The build is failing - My approval is for the proposed change, but please clean up the build and get all tests to pass. I believe this needs a |
|
@bachgarash can you regenerate the docs to take on the changes to the documentation templates? |
|
Hi there. I have added a basic prototype into Otel-demo as requested |
9679b6a to
0de4ab4
Compare
0de4ab4 to
bf07d66
Compare
jsuereth
left a comment
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.
Re-approving this with the demo.
eeb4735 to
08b5c96
Compare
|
Would |
| This attribute enables classification of services based on their operational importance, | ||
| allowing observability platforms to implement criticality-aware tracing, monitoring, | ||
| and sampling strategies. By standardizing service criticality, organizations can implement | ||
| adaptive sampling rates (e.g., 100% for critical, 10% for low-priority services), optimize | ||
| telemetry costs by reducing data from non-critical services, improve incident response by | ||
| surfacing critical service traces first, and enable better capacity planning and resource allocation. |
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.
This is a great explanation and it definitely helps understand the reasoning behind the attribute. Perhaps it could be written in more actionable/non-prescriptive/spec-like manner?
E.g.
| This attribute enables classification of services based on their operational importance, | |
| allowing observability platforms to implement criticality-aware tracing, monitoring, | |
| and sampling strategies. By standardizing service criticality, organizations can implement | |
| adaptive sampling rates (e.g., 100% for critical, 10% for low-priority services), optimize | |
| telemetry costs by reducing data from non-critical services, improve incident response by | |
| surfacing critical service traces first, and enable better capacity planning and resource allocation. | |
| note: > | |
| Application developers are encouraged to set `service.criticality` to | |
| express the operational importance of their services. Telemetry | |
| consumers MAY use this attribute to optimize telemetry collection | |
| or improve user experience. |
|
|
||
| These are the attributes which MAY be configurable via a dedicated environment variable | ||
| as specified in [OpenTelemetry Environment Variable Specification](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.51.0/specification/configuration/sdk-environment-variables.md): | ||
| as specified in [OpenTelemetry Environment Variable Specification](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.50.0/specification/configuration/sdk-environment-variables.md): |
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.
could you please undo this and similar changes?
| ## Service | ||
|
|
||
| Logical grouping of components. | ||
| <!-- semconv entity.service --> |
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.
is this change intentional?
@thompson-tomo No, see: https://github.com/open-telemetry/semantic-conventions/blob/main/docs/resource/service.md The criticality is a characteristic of the logical service, thus, implicitly applied to all its instances. |
|
@joaopgrassi that is what I had been thinking however the new attribute has been added to the service.instance entity as a descriptive attribute
|
joaopgrassi
left a comment
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.
Please revert/undo the unrelated changes to the actual intended changes. Also blocking to avoiding merging until we all agree under which entity namespace this attribute should go service.* or service.instance.*
| @@ -1,5 +1,5 @@ | |||
| params: | |||
| next_version: "next_version_placeholder" # https://github.com/open-telemetry/weaver/issues/775 | |||
| next_version: "next_version_placeholder" # https://github.com/open-telemetry/weaver/issues/775 | |||
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.
Revert unrelated changes, please.
|
|
||
| - name: "Semantic Conventions: Resources and Entities" | ||
| owner: | ||
| - name: "specs-semconv-maintainers" # TODO: Missing team user for entities? |
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.
Let's keep unrelated changes outside the PR. There's a few others as well.
| - ref: service.instance.id | ||
| role: identifying | ||
| requirement_level: required | ||
| - ref: service.criticality |
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.
@jsuereth do we really want to add this under the service.instance.* namespace? Wouldn't it make more sense that this is part of service.* one? I feel this is a characteristic of the logical service, that applies to all its instances. I wouldn't think it makes sense that one instance is more critical than another.
Fixes #2986
This PR introduces a new attribute -
service.criticalityRelevant discussion has been made during Service and Deployment Semconv SIG meet
Meet notes https://docs.google.com/document/d/1Fy6yXfZqrwN_oHw95Bdfg_0hzUgzlk3VO5wA1invgkI/edit?tab=t.0
Recording can be found https://docs.google.com/spreadsheets/d/1SYKfjYhZdm2Wh2Cl6KVQalKg_m4NhTPZqq-8SzEVO6s/edit?gid=0#gid=0 (6th of November)
Changes
This PR introduces a new semantic convention attribute
service.criticalityto enable classification of services based on their operational importance. This attribute will allow observability platforms to implement criticality-aware tracing, and sampling strategies.Important
Pull requests acceptance are subject to the triage process as described in Issue and PR Triage Management.
PRs that do not follow the guidance above, may be automatically rejected and closed.
Merge requirement checklist
[chore]