opentelemetry-rust icon indicating copy to clipboard operation
opentelemetry-rust copied to clipboard

Metrics beta/rc/stable release timelines

Open cijothomas opened this issue 9 months ago • 2 comments

Extracting from parent issue to own issue to gather explicit feedbacks, as details are hard to notice, when embedded inside the parent issue, especially the breaking changes.

Background:

Re-emphasizing the core issues from https://github.com/open-telemetry/opentelemetry-rust/issues/1572

  1. Performance is not acceptable. (heavy contentions)
  2. Lack of test coverage to prove correctness, stability
  3. Shutdown/Cleanup issues
  4. No ability to run Metrics SDK without an async runtime
  5. Hard to troubleshoot

Release plan for Metrics

Components in scope are: Metrics API (opentelemetry crate) Metrics SDK (opentelemetry-sdk crate) Metrics InMemory Exporter (opentelemetry-sdk crate) Metrics OTLP Exporter (opentelemetry-otlp crate) Metrics stdout Exporter (opentelemetry-stdout crate)

Following sub-sections provides details on items we plan for each release, along with rough timelines.

Beta release - ETA June 30 2024

Breaking changes are still possible in beta, but has a higher bar than alpha releases.

The following functionality is explicitly being removed:

  1. Metrics API's ability to add/remove Callbacks after Observable Instruments has been created. There will still be ability to provide callback(s) at the time of Instrument Creation. The current API to add/remove callbacks after instrument creation needs to be revisited to ensure functionality/usefulness/correctness. Removing it from initial release to keep the scope manageable.

Link to discussion around this, as there are concerns: https://github.com/open-telemetry/opentelemetry-rust/pull/1715/files#r1592783145

  1. Metrics SDK's View feature. Would need to gather feedback about the common use cases where Views are needed. My own experience is that, it is used most frequently to provide custom Histogram bounds. Before removing View feature, the ability to provide custom bounds will be provided at the API level. The main reason why it is removed from initial release is to keep scope manageable. Views bring a whole lot of new complexities and additional test requirements.
  2. Prometheus/Pull Exporter.

RC release - ETA Nov 30 2024

While breaking changes are still possible, it has extremely high bar here.

Stable release - ETA Jan 30 2025

No breaking changes allowed after.

Post the 1st stable release, the following features will be added (listed not in priority order)

  1. Add support for multiple readers
  2. Add support for Views
  3. Add support for Exemplars
  4. Add support for Metric Producers
  5. Add support for Pull exporters and Prometheus Exporter

cijothomas avatar May 07 '24 17:05 cijothomas

Hi, just a small nitpick:

Stable release - ETA Jan 30 2024

should be

Stable release - ETA Jan 30 2025

This confused me a bit, as I read the Issue bottom to top :see_no_evil:

sbernauer avatar Jul 23 '24 07:07 sbernauer

Thanks @sbernauer ! Updated.

cijothomas avatar Jul 24 '24 14:07 cijothomas