Skip to content

Commit

Permalink
Fix prometheus name duplicate _total suffix (#3369)
Browse files Browse the repository at this point in the history
Signed-off-by: Bing Han <h.bing612@gmail.com>

Signed-off-by: Bing Han <h.bing612@gmail.com>
  • Loading branch information
tony612 committed Oct 21, 2022
1 parent 1133977 commit ccbc38e
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 4 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Expand Up @@ -8,6 +8,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

## [Unreleased]

### Fixed

- The `go.opentelemetry.io/otel/exporters/prometheus` exporter fixes duplicated `_total` suffixes. (#3369)

## [1.11.1/0.33.0] 2022-10-19

### Added
Expand Down
8 changes: 4 additions & 4 deletions exporters/prometheus/exporter.go
Expand Up @@ -162,11 +162,11 @@ func addSumMetric[N int64 | float64](ch chan<- prometheus.Metric, sum metricdata
if !sum.IsMonotonic {
valueType = prometheus.GaugeValue
}
if sum.IsMonotonic {
// Add _total suffix for counters
name += counterSuffix
}
for _, dp := range sum.DataPoints {
if sum.IsMonotonic {
// Add _total suffix for counters
name += counterSuffix
}
keys, values := getAttrs(dp.Attributes)
desc := prometheus.NewDesc(name, m.Description, keys, nil)
m, err := prometheus.NewConstMetric(desc, valueType, float64(dp.Value), values...)
Expand Down
8 changes: 8 additions & 0 deletions exporters/prometheus/exporter_test.go
Expand Up @@ -62,6 +62,14 @@ func TestPrometheusExporter(t *testing.T) {
counter.Add(ctx, 5, attrs...)
counter.Add(ctx, 10.3, attrs...)
counter.Add(ctx, 9, attrs...)

attrs2 := []attribute.KeyValue{
attribute.Key("A").String("D"),
attribute.Key("C").String("B"),
attribute.Key("E").Bool(true),
attribute.Key("F").Int(42),
}
counter.Add(ctx, 5, attrs2...)
},
},
{
Expand Down
1 change: 1 addition & 0 deletions exporters/prometheus/testdata/counter.txt
@@ -1,6 +1,7 @@
# HELP foo_milliseconds_total a simple counter
# TYPE foo_milliseconds_total counter
foo_milliseconds_total{A="B",C="D",E="true",F="42"} 24.3
foo_milliseconds_total{A="D",C="B",E="true",F="42"} 5
# HELP target_info Target metadata
# TYPE target_info gauge
target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1

0 comments on commit ccbc38e

Please sign in to comment.