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

How to evolve stable conventions #1017

Closed
lmolkova opened this issue May 8, 2024 · 1 comment
Closed

How to evolve stable conventions #1017

lmolkova opened this issue May 8, 2024 · 1 comment
Assignees
Labels
area:other enhancement New feature or request question Further information is requested

Comments

@lmolkova
Copy link
Contributor

lmolkova commented May 8, 2024

We should be able to evolve semantic conventions after they become stable or use experimental features in addition to stable semantics.

For example, HTTP spans may use experimental attributes such as http.request.body.size or url.template.

Here's the emerging practice we're using for HTTP:

Incompatible changes (definition):

In exceptional cases semantic conventions may introduce incompatible changes to stable parts. For example, HTTP client telemetry did not have a way to record url.template. By allowing to use the attribute (in a rare cases when it's available) on the span name and on metrics, we can significantly improve http client observability

  • such changes would require a major version bump for the instrumentation libraries to adopt the new version of semconv.
    • depending on the severity of the change, we may also need to do a major version bump for semantic conventions.
  • there should be a very good reason to make such changes: a security bug, a significant net improvement to user experience, etc
  • each breaking case should be treated individually and discussed by the semconv and specification communities.

Examples:

  • adding url.template opt-in attribute to http.client.request.duration metric is fine

    • it can be added as experimental first
    • instrumentation libraries may add it behind the feature flag
    • eventually it can be moved into a stable metric definition with opt-in requirement level
  • adding url.template by default to http.client.request.duration metric is breaking.

    • while the attribute remains experimental it must be opt-in
    • after attribute stabilizes:
      • based on the discussion in semconv community, we may decide that it's a low risk/high reward change and allow populating it by default.
    • in this case, instrumentation libraries may start adding it by default as long as they do a major version bump and document it as a breaking change.

Related issues:

@lmolkova lmolkova added enhancement New feature or request question Further information is requested labels May 8, 2024
@lmolkova lmolkova assigned lmolkova and unassigned arminru May 8, 2024
@lmolkova lmolkova moved this from Need triage to Core SemConv issues in DRAFT - SemConv Issue Triage Jan 19, 2025
@lmolkova
Copy link
Contributor Author

I believe this is addressed with #1472

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:other enhancement New feature or request question Further information is requested
Projects
Archived in project
Development

No branches or pull requests

2 participants