Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Metric support plans #1501

Closed
cijothomas opened this issue Nov 10, 2020 · 9 comments
Closed

Metric support plans #1501

cijothomas opened this issue Nov 10, 2020 · 9 comments

Comments

@cijothomas
Copy link
Member

cijothomas commented Nov 10, 2020

Background

OpenTelemetry .NET SDK currently has a basic implementation of the Metric API. This was written as a prototype (when Metrics Specs were in early stages), and is not recommended for any production scenarios.

The OpenTelemetry specification for Metrics SDK is a work-in-progress, and has not declared stable.

OpenTelemetry .NET SDK currently plans to release v1.0.0 the tracing/context/baggage signals by Jan/Feb 2021. As the Metric API/SDK is part of same package as other stable signals, all Metric API/SDK will be removed from the 1.0.0 release, and will be released as a separate, pre-release version (like 1.1.0-alpha1). Once Metrics spec is declared stable, there will be a stable release (like 1.2.0) which adds Metrics support.

OpenTelemetry .NET Metric plans

OpenTelemetry .NET SIG has previously collaborated with .NET runtime team on the Activity API, which was enhanced to be compatible with OpenTelemetry Tracing API. We expect to continue to collaborate with .NET runtime team for Metrics work as well. .NET runtime team has already announced plans to provide a OpenTelemetry compatible Metric API in the .NET Runtime itself.

Timeline

The next major release from .NET is .NET 6 which is expected to GA on Nov 2021. As OpenTelemetry .NET Metrics will be built on top of Metric API exposed by .NET runtime, OpenTelemetry .NET Metric will also GA at Nov 2021. Starting June 2021, there will be preview releases. Even though the Metric support is releasing along with .NET6, the actual API will be an out-of-band package, similar to System.Diagnostics.DiagnosticSource package, and is expected to support all officially supported versions of .NET Core and .NET Framework.(except .NET Framework older than 4.6.2)

@cijothomas
Copy link
Member Author

Ask from the community

While we are happy to always receive feedback on all the areas, we are especially looking for feedback on following:

  • EventCounter Feedback

.NET already has a basic Metric API called EventCounters. The new Metric API may/may not be compatible with EventCounters. We are looking for feedback about your usage of EventCounters. Specifically,
Are you using EventCounters in any way in your applications?
If yes, are you simply consuming EventCounters?
If yes, are you consuming EventCounters published by components in .NET Ecosystem (eg: .NET Runtime, Asp.Net Core etc.) or by libraries other than the ones shipped by Microsoft/.NET.
Are you publishing Metrics using EventCounters?

Please use this issue to share feedback about EventCounters.

  • Metric API in .NET Runtime feedback
    .NET just announced plans to support OpenTelemetry compatible metrics API.
    Use .NET Runtime to share feedback about .NET implementation of the Metric API. This is in early planning stage now, and more details will be shared by Feb 2021.

If there is a feedback about the OpenTelemetry Metric API itself, its best to discuss it in OpenTelemetry specification repo, as .NET will be implementing a spec compatible API only.

  • OpenTelemetry .NET Metric API/SDK feedback
    If you have questions/concerns about anything related to OpenTelemetry .NET (Yes, thats this repo itself!) and new metrics plan shared above specifically, please comment in this issue. For anything about the current to-be-marked-obsolete Metric API/SDK in this repo, please open a separate issue.

@cijothomas
Copy link
Member Author

Update:
We have released 4 alpha versions (1.2.0-alpha1/2/3/4) which contains the Metric support.
Starting this week, we'll be releasing beta versions, and RC version early Nov. The goal is to release 1.2.0 as stable by Nov, assuming the spec gets marked stable.

@hdost
Copy link

hdost commented Oct 21, 2021

Is there any sort of enumerated list of remaining features?

@cijothomas
Copy link
Member Author

Is there any sort of enumerated list of remaining features?

Will create one soon and mark with milestones as well.

@cijothomas
Copy link
Member Author

Update: A release candidate version (1.2.0-rc1) is available now.
Planning the stable release in next couple days, assuming spec gets stable.
https://github.com/open-telemetry/opentelemetry-dotnet/milestone/22

@cijothomas
Copy link
Member Author

Is there any sort of enumerated list of remaining features?

Will create one soon and mark with milestones as well.

This is the official compliance matrix:
https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md#metrics

For quick reference, here's what we are missing:

  1. UpDownCounter/ObservableUpDownCounter - trying to make it happen in .NET runtime itself. See Support UpDownCounter #2362
  2. Advanced view configuration (to change aggregation itself, add more attributes/tags from Baggage) - View - Additional tags from Baggage #2619, View - allow to change aggregation type #2618
  3. Exemplars Support exemplars in Metrics #2527
  4. MinMax for Histograms Histogram aggregation should support Min Max #2560
  5. Exponential Histograms (spec is still experimental)

@ladeak
Copy link

ladeak commented Jan 31, 2022

Do you have any plans to add other metrics exporters, for example exporting to InfluxDB?

@cijothomas
Copy link
Member Author

Do you have any plans to add other metrics exporters, for example exporting to InfluxDB?

Only exporters listed here (https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/metrics/sdk_exporters) would be part of this repo. Though anyone can contribute more exporters in the https://github.com/open-telemetry/opentelemetry-dotnet-contrib repo, we can help with reviews.

@cijothomas
Copy link
Member Author

Update: 1.2.0-rc2 got released (with huge perf improvement for Metrics)
1.2.0 stable, as soon as spec for Metrics SDK is stable.

@open-telemetry open-telemetry locked and limited conversation to collaborators Feb 24, 2022
@cijothomas cijothomas converted this issue into discussion #2940 Feb 24, 2022
@cijothomas cijothomas unpinned this issue Feb 24, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests

3 participants