Open bastianeicher opened 2 years ago
This feels like a specification issue. Every language implementations follow the OTel specification https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/prometheus.md
Also - Exemplars are not yet implemented in OpenTelemetry .NET
The specification you linked to says:
A Prometheus Exporter MAY support OpenMetrics Text Format, including the Exemplars.
So basically my feature request would be to implement this optional part of the specification in OpenTelemetry .NET.
Yes. But Exemplars feature itself is not implemented.
This issue was marked stale due to lack of activity and will be closed in 7 days. Commenting will instruct the bot to automatically remove the label. This bot runs once per day.
I still think this would be a very valuable addition to opentelemetry-dotnet. This library supports both metrics and traces, so a technology for connecting them, namely exemplars, seems like a prefect fit.
I've just raised #5929 for this
Feature Request
The OpenMetrics specification extends the Prometheus format with - among other things - support for exemplars. All recent versions of Prometheus support this out of the box and it provides a great way to correlate metrics with traces.
I'd imagine an implementation like this:
Activity.Current
(always keeping the latest value per metric).PrometheusExporterMiddleware
andPrometheusExporterHttpServer
check theAccept
header of incoming scrape requests. If this containsapplication/openmetrics-text; version=1.0.0
, append the capture activity/trace IDs to metrics as specified by OpenMetrics.I believe this would provide great value because it would make integration between two of OpenTelemetry's pillars, tracing and metrics, just work (tm) out of the box.
If you feel that this would be a good fit and could give me some pointers as to the right places in the code to integrate such functionality, I'd be happy to whip up a proof-of-concept PR.