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

Tracker: Stabilize prometheus compatibility specification #3737

Open
dashpole opened this issue Oct 25, 2023 · 3 comments
Open

Tracker: Stabilize prometheus compatibility specification #3737

dashpole opened this issue Oct 25, 2023 · 3 comments
Assignees
Labels
sig-issue spec:miscellaneous For issues that don't match any other spec label

Comments

@dashpole
Copy link
Contributor

dashpole commented Oct 25, 2023

This is a tracker for stabilizing this specification, which is currently experimental: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md

There are currently three compliant SDK implementations, per the compliance matix: Go, Java, Rust.

The prometheus receiver is compliant as well: open-telemetry/opentelemetry-collector-contrib#25865

Here are the open spec issues i'm aware of that block stability:

Notable non-blocking issues (additive changes):

We should also verify that the prometheus and prometheusremotewrite collector exporters are compliant before stabilizing the specification.

Of the open issues, the Prometheus WG agreed today that #3736 is the primary blocker.

@open-telemetry/wg-prometheus @MrAlias @jmacd @jsuereth

@dashpole dashpole added the spec:miscellaneous For issues that don't match any other spec label label Oct 25, 2023
@dashpole
Copy link
Contributor Author

The prometheus exporter specification needs to be updated to clarify that it needs to follow the conversion specification.

@jack-berg
Copy link
Member

Per the fully compliant java implementation: The java implementation currently does not serialize exponential histograms, so in incomplete in at least some sense. When I look at the prometheus exporter doc, it doesn't actually link / reference the prometheus compatibility document. This leads the definition of a "compliant" implementation ambiguous. Should update the prometheus exporter document to link to the prometheus compatibility document, and update the prometheus compatibility doc to indicate which portions of the OTLP Metric to prometheus are required for SDK exporters.

@dashpole
Copy link
Contributor Author

dashpole commented Feb 8, 2024

@jack-berg Re: exponential histograms, i've tried to address that in #3872. The basic idea is that exporters should be required to support the text format. But since the text format doesn't support exponential histograms, exporters won't initially be required to support them.

It also now links to the compatibility document.

carlosalberto pushed a commit that referenced this issue Mar 27, 2024
Fixes
#3702
Fixes
#2468

Addresses
#3737 (comment)

## Changes

* Add option to disable `target` info metric.
* Move SDK-specific language from the compatibility spec to the
prometheus exporter spec.
* Disallow using OpenMetrics proto format, or Prometheus remote write
formats in SDK exporters
* Recommend using Prometheus client libraries
* Clarify that only features supported by the text format are required
to be implemented by Prometheus exporters
* Require prometheus SDK exporters to follow the compatibility
specification.

@open-telemetry/wg-prometheus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig-issue spec:miscellaneous For issues that don't match any other spec label
Projects
Status: Spec - In Progress
Development

No branches or pull requests

5 participants