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

System metrics - Define transition plan for breaking changes in attributes #246

Open
1 task
joaopgrassi opened this issue Aug 11, 2023 · 9 comments
Open
1 task

Comments

@joaopgrassi
Copy link
Member

joaopgrassi commented Aug 11, 2023

In open-telemetry/opentelemetry-collector-contrib#89 the attributes of all existing metrics were changed based on the decision in open-telemetry/opentelemetry-collector-contrib#51. An overview of the changes can be found in this comment.

From @jsuereth on the PR:

We should do one of two things with this PR:

  • Open a (blocking) bug about providing guidance on how to deal with the breaking changes in system metrics.
  • Advise instrumentation to continue using the older System metrics specification until the system metrics working group has had a chance to walk through their issues and declare this stable.

I'm creating this issue to discuss what we should do next:

CC @jsuereth @ChrsMark @dmitryax @mx-psi

@mx-psi
Copy link
Member

mx-psi commented Aug 14, 2023

Do we have an idea as to what OpenTelemetry components implement system metrics? I am aware and have worked on the OpenTelemetry Collector hostmetrics receiver, but I don't know what language libraries have support for it and I think the specific implementers may change our plans (we have different tooling available in the Collector vs. libraries e.g. feature gates)

@trask
Copy link
Member

trask commented Aug 14, 2023

Do we have an idea as to what OpenTelemetry components implement system metrics?

I think you should be able to find out by searching the github org for the different system.* namespaces, e.g.

Also note this prior sentiment that non-collector components should not emit system.* metrics: open-telemetry/opentelemetry-specification#2388 (comment)

@dmitryax
Copy link
Member

dmitryax commented Aug 21, 2023

I think it should be similar to open-telemetry/opentelemetry-specification#3362 with a long transition period because the hostmetrics receiver is pretty popular and must be widely used in the field.

Speaking about the transition mechanics, open-telemetry/opentelemetry-collector#10903 (I'm working on it) will introduce a concept of default and optional attributes that users can override along with the ability to assign deprecation warnings for them in metadata.yaml files. Similar functionality is currently available for metrics https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/cmd/mdatagen/metadata-schema.yaml#L60. Once it's in place, we can utilize that mechanism for this transition.

@mx-psi
Copy link
Member

mx-psi commented Aug 30, 2023

Thanks @trask! Based on the searches from #246 (comment) as well as searches for all other prefixes from the system namespace we have the following implementations of at least some system metrics:

@mx-psi
Copy link
Member

mx-psi commented Aug 30, 2023

On the August 30th System Semantic Convention WG meeting we decided that:

  • We want to continue merging changes to the spec up until we declare the system metrics stable
  • We will not make the transition on any implementations until we have declared it stable, we will use the experience of the HTTP transition to understand and adjust the transition plan for language libraries

@mx-psi mx-psi moved this from In Progress to Blocked in System Semantic Convention Working Group Sep 6, 2023
@joaopgrassi
Copy link
Member Author

Discussed about the plan on September 11th in the Semconv SIG meeting:

  • Collector uses feature gates to manage breaking changes - the plan should accommodate for that
  • As an initial "warning" we should add a similar section as done for HTTP, indicating instrumentations to continue producing the old version of the conventions
  • Leave the actual transition plan blank, until we know more which SIGs are affected and if/how we will handle it. System semconv SIG should be filling this gap there with the proper plan

@dmitryax
Copy link
Member

Collector uses feature gates to manage breaking changes - the plan should accommodate for that

I shared a preferred way for the collector in the comment above #246 (comment). I think we should use that one instead of feature gates. It's more flexible, e.g. it allows users to send both attributes during the transition if they want to.

dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 4, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 5, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 7, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 7, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
dmitryax added a commit to dmitryax/semantic-conventions that referenced this issue Dec 14, 2023
Add a warning the system semantic conventions to prevent implementations from adopting the breaking changes until the conventions are stabilized. This warning is to be updated once open-telemetry#246 is closed
@mx-psi
Copy link
Member

mx-psi commented Nov 14, 2024

Discussed at KubeCon NA 2024 at 2024-11-14. For the JS, Go and other language-specific implementations we should comment on the existing issues with the migration plan and bring it up on the maintainers meeting but not necessarily do the work in any place other than the Collector.

@mx-psi
Copy link
Member

mx-psi commented Nov 14, 2024

In terms of comms, we want to first work on a release candidate and then really communicate it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants