Skip to content

Commit

Permalink
Allow Prometheus exporter to add resource attributes to metric attrib…
Browse files Browse the repository at this point in the history
…utes (#3761)

Fixes #3705 

## Changes

Allowing exporters (e.g. Prometheus exporter) to add the resource
attributes to each exported metric attributes
  • Loading branch information
asafm authored Nov 27, 2023
1 parent 6f24488 commit 83b32c3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ release.

### Metrics

- Add optional configuration for Prometheus exporters to promote resource attributes to metric attributes
([#3761](https://github.com/open-telemetry/opentelemetry-specification/pull/3761))

### Logs

- Add definition for standard output log record exporter.
Expand Down
10 changes: 5 additions & 5 deletions specification/compatibility/prometheus_and_openmetrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -385,11 +385,11 @@ OpenMetrics exemplar unless they would exceed the OpenMetrics

In SDK Prometheus (pull) exporters, resource attributes SHOULD be converted to
a single [`target_info` metric](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#supporting-target-metadata-in-both-push-based-and-pull-based-systems)
if the resource is not [empty](../resource/sdk.md#the-empty-resource);
otherwise, they MUST be dropped, and MUST NOT be attached as labels to other
metric families. The target_info metric MUST be an info-typed metric whose
labels MUST include the resource attributes, and MUST NOT include any other
labels. There MUST be at most one target_info metric exposed on an SDK
if the resource is not [empty](../resource/sdk.md#the-empty-resource).
The resource attributes MAY be copied to labels of exported metric families
if required by the exporter configuration, or MUST be dropped. The target_info metric MUST be an info-typed
metric whose labels MUST include the resource attributes, and MUST NOT include
any other labels. There MUST be at most one target_info metric exposed on an SDK
Prometheus endpoint.

In the Collector's Prometheus pull and push (remote-write) exporters, it is
Expand Down
6 changes: 6 additions & 0 deletions specification/metrics/sdk_exporters/prometheus.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,9 @@ A Prometheus Exporter MAY support [OpenMetrics Text
Format](https://github.com/prometheus/docs/blob/main/content/docs/instrumenting/exposition_formats.md#openmetrics-text-format),
including the
[Exemplars](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#exemplars).

A Prometheus Exporter MAY offer configuration to add resource attributes as metric attributes.
By default, it MUST NOT add any resource attributes as metric attributes.
The configuration SHOULD allow the user to select which resource attributes to copy (e.g.
include / exclude or regular expression based). Copied Resource attributes MUST NOT be
excluded from target_info.

0 comments on commit 83b32c3

Please sign in to comment.