diff --git a/exporters/prometheus/config.go b/exporters/prometheus/config.go index ceb2d63e2a9..1614d58820d 100644 --- a/exporters/prometheus/config.go +++ b/exporters/prometheus/config.go @@ -5,13 +5,11 @@ package prometheus // import "go.opentelemetry.io/otel/exporters/prometheus" import ( "strings" - "sync" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/common/model" "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/internal/global" "go.opentelemetry.io/otel/sdk/metric" ) @@ -27,12 +25,6 @@ type config struct { resourceAttributesFilter attribute.Filter } -var logDeprecatedLegacyScheme = sync.OnceFunc(func() { - global.Warn( - "prometheus exporter legacy scheme deprecated: support for the legacy NameValidationScheme will be removed in a future release", - ) -}) - // newConfig creates a validated config configured with options. func newConfig(opts ...Option) config { cfg := config{} @@ -140,11 +132,7 @@ func WithoutScopeInfo() Option { // have special behavior based on their name. func WithNamespace(ns string) Option { return optionFunc(func(cfg config) config { - if model.NameValidationScheme != model.UTF8Validation { // nolint:staticcheck // We need this check to keep supporting the legacy scheme. - logDeprecatedLegacyScheme() - // Only sanitize if prometheus does not support UTF-8. - ns = model.EscapeName(ns, model.NameEscapingScheme) - } + ns = model.EscapeName(ns, model.NameEscapingScheme) if !strings.HasSuffix(ns, "_") { // namespace and metric names should be separated with an underscore, // adds a trailing underscore if there is not one already. diff --git a/exporters/prometheus/config_test.go b/exporters/prometheus/config_test.go index c24ccd72e6d..7d9d8637776 100644 --- a/exporters/prometheus/config_test.go +++ b/exporters/prometheus/config_test.go @@ -133,7 +133,7 @@ func TestNewConfig(t *testing.T) { }, wantConfig: config{ registerer: prometheus.DefaultRegisterer, - namespace: "test/_", + namespace: "test_", }, }, } diff --git a/exporters/prometheus/exporter.go b/exporters/prometheus/exporter.go index e0959641caf..fdfccee777b 100644 --- a/exporters/prometheus/exporter.go +++ b/exporters/prometheus/exporter.go @@ -404,33 +404,24 @@ func getAttrs(attrs attribute.Set) ([]string, []string) { values := make([]string, 0, attrs.Len()) itr := attrs.Iter() - if model.NameValidationScheme == model.UTF8Validation { // nolint:staticcheck // We need this check to keep supporting the legacy scheme. - // Do not perform sanitization if prometheus supports UTF-8. - for itr.Next() { - kv := itr.Attribute() - keys = append(keys, string(kv.Key)) - values = append(values, kv.Value.Emit()) - } - } else { - // It sanitizes invalid characters and handles duplicate keys - // (due to sanitization) by sorting and concatenating the values following the spec. - keysMap := make(map[string][]string) - for itr.Next() { - kv := itr.Attribute() - key := model.EscapeName(string(kv.Key), model.NameEscapingScheme) - if _, ok := keysMap[key]; !ok { - keysMap[key] = []string{kv.Value.Emit()} - } else { - // if the sanitized key is a duplicate, append to the list of keys - keysMap[key] = append(keysMap[key], kv.Value.Emit()) - } - } - for key, vals := range keysMap { - keys = append(keys, key) - slices.Sort(vals) - values = append(values, strings.Join(vals, ";")) + // It sanitizes invalid characters and handles duplicate keys + // (due to sanitization) by sorting and concatenating the values following the spec. + keysMap := make(map[string][]string) + for itr.Next() { + kv := itr.Attribute() + key := model.EscapeName(string(kv.Key), model.NameEscapingScheme) + if _, ok := keysMap[key]; !ok { + keysMap[key] = []string{kv.Value.Emit()} + } else { + // if the sanitized key is a duplicate, append to the list of keys + keysMap[key] = append(keysMap[key], kv.Value.Emit()) } } + for key, vals := range keysMap { + keys = append(keys, key) + slices.Sort(vals) + values = append(values, strings.Join(vals, ";")) + } return keys, values } @@ -489,12 +480,7 @@ var unitSuffixes = map[string]string{ // getName returns the sanitized name, prefixed with the namespace and suffixed with unit. func (c *collector) getName(m metricdata.Metrics, typ *dto.MetricType) string { - name := m.Name - if model.NameValidationScheme != model.UTF8Validation { // nolint:staticcheck // We need this check to keep supporting the legacy scheme. - // Only sanitize if prometheus does not support UTF-8. - logDeprecatedLegacyScheme() - name = model.EscapeName(name, model.NameEscapingScheme) - } + name := model.EscapeName(m.Name, model.NameEscapingScheme) addCounterSuffix := !c.withoutCounterSuffixes && *typ == dto.MetricType_COUNTER if addCounterSuffix { // Remove the _total suffix here, as we will re-add the total suffix diff --git a/exporters/prometheus/testdata/conflict_help_two_counters_1.txt b/exporters/prometheus/testdata/conflict_help_two_counters_1.txt index 5424f09214d..103c42bd863 100644 --- a/exporters/prometheus/testdata/conflict_help_two_counters_1.txt +++ b/exporters/prometheus/testdata/conflict_help_two_counters_1.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_help_two_counters_2.txt b/exporters/prometheus/testdata/conflict_help_two_counters_2.txt index fe6c7400c5d..68405422e99 100644 --- a/exporters/prometheus/testdata/conflict_help_two_counters_2.txt +++ b/exporters/prometheus/testdata/conflict_help_two_counters_2.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_help_two_histograms_1.txt b/exporters/prometheus/testdata/conflict_help_two_histograms_1.txt index 1c22545d7b9..3bdccfc05a7 100644 --- a/exporters/prometheus/testdata/conflict_help_two_histograms_1.txt +++ b/exporters/prometheus/testdata/conflict_help_two_histograms_1.txt @@ -42,4 +42,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_help_two_histograms_2.txt b/exporters/prometheus/testdata/conflict_help_two_histograms_2.txt index 85497d9f2b8..2d9e5c966d9 100644 --- a/exporters/prometheus/testdata/conflict_help_two_histograms_2.txt +++ b/exporters/prometheus/testdata/conflict_help_two_histograms_2.txt @@ -42,4 +42,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_help_two_updowncounters_1.txt b/exporters/prometheus/testdata/conflict_help_two_updowncounters_1.txt index 0f64d584913..72fd145eab4 100644 --- a/exporters/prometheus/testdata/conflict_help_two_updowncounters_1.txt +++ b/exporters/prometheus/testdata/conflict_help_two_updowncounters_1.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_help_two_updowncounters_2.txt b/exporters/prometheus/testdata/conflict_help_two_updowncounters_2.txt index d89da4bb4f6..2e2cef1004b 100644 --- a/exporters/prometheus/testdata/conflict_help_two_updowncounters_2.txt +++ b/exporters/prometheus/testdata/conflict_help_two_updowncounters_2.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_1.txt b/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_1.txt index 0418558f724..885fb3c7259 100644 --- a/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_1.txt +++ b/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_1.txt @@ -6,4 +6,4 @@ foo_total{otel_scope_name="ma",otel_scope_version="v0.1.0",type="foo"} 100 otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_2.txt b/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_2.txt index a50ed8d5e1f..62275c98260 100644 --- a/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_2.txt +++ b/exporters/prometheus/testdata/conflict_type_counter_and_updowncounter_2.txt @@ -6,4 +6,4 @@ foo_total{otel_scope_name="ma",otel_scope_version="v0.1.0",type="foo"} 100 otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_1.txt b/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_1.txt index 8a0d2d10241..91f1ef774f9 100644 --- a/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_1.txt +++ b/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_1.txt @@ -6,4 +6,4 @@ foo_bytes{A="B",otel_scope_name="ma",otel_scope_version="v0.1.0"} 100 otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_2.txt b/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_2.txt index 8e16f340862..15e9a9c570a 100644 --- a/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_2.txt +++ b/exporters/prometheus/testdata/conflict_type_histogram_and_updowncounter_2.txt @@ -23,4 +23,4 @@ foo_bytes_count{A="B",otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_unit_two_counters.txt b/exporters/prometheus/testdata/conflict_unit_two_counters.txt index 21bf84e5b46..07efc2e5549 100644 --- a/exporters/prometheus/testdata/conflict_unit_two_counters.txt +++ b/exporters/prometheus/testdata/conflict_unit_two_counters.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_unit_two_histograms.txt b/exporters/prometheus/testdata/conflict_unit_two_histograms.txt index 81b231e9823..e41a7812e9a 100644 --- a/exporters/prometheus/testdata/conflict_unit_two_histograms.txt +++ b/exporters/prometheus/testdata/conflict_unit_two_histograms.txt @@ -42,4 +42,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/conflict_unit_two_updowncounters.txt b/exporters/prometheus/testdata/conflict_unit_two_updowncounters.txt index 8f795073906..54b608484e1 100644 --- a/exporters/prometheus/testdata/conflict_unit_two_updowncounters.txt +++ b/exporters/prometheus/testdata/conflict_unit_two_updowncounters.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/counter.txt b/exporters/prometheus/testdata/counter.txt index d654ac16df1..443c45adcbd 100755 --- a/exporters/prometheus/testdata/counter.txt +++ b/exporters/prometheus/testdata/counter.txt @@ -7,4 +7,4 @@ foo_seconds_total{A="D",C="B",E="true",F="42",otel_scope_name="testmeter",otel_s otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/counter_disabled_suffix.txt b/exporters/prometheus/testdata/counter_disabled_suffix.txt index d7411b12df3..f9fb68ddbff 100755 --- a/exporters/prometheus/testdata/counter_disabled_suffix.txt +++ b/exporters/prometheus/testdata/counter_disabled_suffix.txt @@ -7,4 +7,4 @@ foo_seconds{A="D",C="B",E="true",F="42",otel_scope_name="testmeter",otel_scope_v otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/counter_utf8.txt b/exporters/prometheus/testdata/counter_utf8.txt index a3acdcc3bd1..bd974406a03 100755 --- a/exporters/prometheus/testdata/counter_utf8.txt +++ b/exporters/prometheus/testdata/counter_utf8.txt @@ -1,10 +1,10 @@ -# HELP "foo.things_seconds_total" a simple counter -# TYPE "foo.things_seconds_total" counter -{"foo.things_seconds_total","A.G"="B","C.H"="D","E.I"="true","F.J"="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 24.3 -{"foo.things_seconds_total","A.G"="D","C.H"="B","E.I"="true","F.J"="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 5 +# HELP foo_things_seconds_total a simple counter +# TYPE foo_things_seconds_total counter +foo_things_seconds_total{A_G="B",C_H="D",E_I="true",F_J="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 24.3 +foo_things_seconds_total{A_G="D",C_H="B",E_I="true",F_J="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 5 # HELP otel_scope_info Instrumentation Scope metadata # TYPE otel_scope_info gauge otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/counter_with_unit_suffix.txt b/exporters/prometheus/testdata/counter_with_unit_suffix.txt index 8bef333ac54..443c45adcbd 100755 --- a/exporters/prometheus/testdata/counter_with_unit_suffix.txt +++ b/exporters/prometheus/testdata/counter_with_unit_suffix.txt @@ -1,10 +1,10 @@ -# HELP "foo.seconds_total" a simple counter -# TYPE "foo.seconds_total" counter -{"foo.seconds_total",A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 24.3 -{"foo.seconds_total",A="D",C="B",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 5 +# HELP foo_seconds_total a simple counter +# TYPE foo_seconds_total counter +foo_seconds_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 24.3 +foo_seconds_total{A="D",C="B",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 5 # HELP otel_scope_info Instrumentation Scope metadata # TYPE otel_scope_info gauge otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/custom_resource.txt b/exporters/prometheus/testdata/custom_resource.txt index e52c07074e9..2e5aeceaccb 100755 --- a/exporters/prometheus/testdata/custom_resource.txt +++ b/exporters/prometheus/testdata/custom_resource.txt @@ -6,4 +6,4 @@ foo_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_ver otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # HELP target_info Target metadata # TYPE target_info gauge -target_info{A="B",C="D","service.name"="prometheus_test","telemetry.sdk.language"="go","telemetry.sdk.name"="opentelemetry","telemetry.sdk.version"="latest"} 1 +target_info{A="B",C="D",service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/exponential_histogram.txt b/exporters/prometheus/testdata/exponential_histogram.txt index 419107a7e91..dbcf382bb7f 100644 --- a/exporters/prometheus/testdata/exponential_histogram.txt +++ b/exporters/prometheus/testdata/exponential_histogram.txt @@ -8,4 +8,4 @@ exponential_histogram_baz_bytes_count{A="B",C="D",otel_scope_name="testmeter",ot otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/gauge.txt b/exporters/prometheus/testdata/gauge.txt index 719e38adc84..db321d4c9fb 100644 --- a/exporters/prometheus/testdata/gauge.txt +++ b/exporters/prometheus/testdata/gauge.txt @@ -6,4 +6,4 @@ bar_ratio{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} . otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/histogram.txt b/exporters/prometheus/testdata/histogram.txt index c38b206cd14..6701786acbd 100644 --- a/exporters/prometheus/testdata/histogram.txt +++ b/exporters/prometheus/testdata/histogram.txt @@ -18,4 +18,4 @@ histogram_baz_bytes_count{A="B",C="D",otel_scope_name="testmeter",otel_scope_ver otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/multi_scopes.txt b/exporters/prometheus/testdata/multi_scopes.txt index 403672d89af..674e1ac814c 100644 --- a/exporters/prometheus/testdata/multi_scopes.txt +++ b/exporters/prometheus/testdata/multi_scopes.txt @@ -10,4 +10,4 @@ otel_scope_info{otel_scope_name="meterfoo",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="meterbar",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/no_conflict_two_counters.txt b/exporters/prometheus/testdata/no_conflict_two_counters.txt index 2bb6da76728..4a1a1f5db3c 100644 --- a/exporters/prometheus/testdata/no_conflict_two_counters.txt +++ b/exporters/prometheus/testdata/no_conflict_two_counters.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/no_conflict_two_histograms.txt b/exporters/prometheus/testdata/no_conflict_two_histograms.txt index 39252257420..10b472032de 100644 --- a/exporters/prometheus/testdata/no_conflict_two_histograms.txt +++ b/exporters/prometheus/testdata/no_conflict_two_histograms.txt @@ -42,4 +42,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/no_conflict_two_updowncounters.txt b/exporters/prometheus/testdata/no_conflict_two_updowncounters.txt index 96a1f7a665f..f2531f48b2d 100644 --- a/exporters/prometheus/testdata/no_conflict_two_updowncounters.txt +++ b/exporters/prometheus/testdata/no_conflict_two_updowncounters.txt @@ -8,4 +8,4 @@ otel_scope_info{otel_scope_name="ma",otel_scope_version="v0.1.0"} 1 otel_scope_info{otel_scope_name="mb",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/non_monotonic_sum_does_not_add_exemplars.txt b/exporters/prometheus/testdata/non_monotonic_sum_does_not_add_exemplars.txt index 3bf851e4d4c..feda8f30f46 100644 --- a/exporters/prometheus/testdata/non_monotonic_sum_does_not_add_exemplars.txt +++ b/exporters/prometheus/testdata/non_monotonic_sum_does_not_add_exemplars.txt @@ -7,4 +7,4 @@ foo_seconds{A="D",C="B",E="true",F="42",otel_scope_name="testmeter",otel_scope_v otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/sanitized_names.txt b/exporters/prometheus/testdata/sanitized_names.txt index f7374017b4e..f32c800d762 100644 --- a/exporters/prometheus/testdata/sanitized_names.txt +++ b/exporters/prometheus/testdata/sanitized_names.txt @@ -1,35 +1,35 @@ # HELP bar a fun little gauge # TYPE bar gauge bar{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 75 -# HELP "0invalid.counter.name_total" a counter with an invalid name -# TYPE "0invalid.counter.name_total" counter -{"0invalid.counter.name_total",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 100 -# HELP "invalid.gauge.name" a gauge with an invalid name -# TYPE "invalid.gauge.name" gauge -{"invalid.gauge.name",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 100 -# HELP "invalid.hist.name" a histogram with an invalid name -# TYPE "invalid.hist.name" histogram -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="0"} 0 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="5"} 0 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="10"} 0 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="25"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="50"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="75"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="100"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="250"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="500"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="750"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="1000"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="2500"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="5000"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="7500"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="10000"} 1 -{"invalid.hist.name_bucket",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="+Inf"} 1 -{"invalid.hist.name_sum",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 23 -{"invalid.hist.name_count",A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 +# HELP _invalid_counter_name_total a counter with an invalid name +# TYPE _invalid_counter_name_total counter +_invalid_counter_name_total{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 100 +# HELP invalid_gauge_name a gauge with an invalid name +# TYPE invalid_gauge_name gauge +invalid_gauge_name{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 100 +# HELP invalid_hist_name a histogram with an invalid name +# TYPE invalid_hist_name histogram +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="0"} 0 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="5"} 0 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="10"} 0 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="25"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="50"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="75"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="100"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="250"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="500"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="750"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="1000"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="2500"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="5000"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="7500"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="10000"} 1 +invalid_hist_name_bucket{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0",le="+Inf"} 1 +invalid_hist_name_sum{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 23 +invalid_hist_name_count{A="B",C="D",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # HELP otel_scope_info Instrumentation Scope metadata # TYPE otel_scope_info gauge otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/with_allow_resource_attributes_filter.txt b/exporters/prometheus/testdata/with_allow_resource_attributes_filter.txt index d7d5cebf439..a25b65cf166 100755 --- a/exporters/prometheus/testdata/with_allow_resource_attributes_filter.txt +++ b/exporters/prometheus/testdata/with_allow_resource_attributes_filter.txt @@ -1,9 +1,9 @@ # HELP foo_total a simple counter # TYPE foo_total counter -foo_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0","service.name"="prometheus_test"} 16.2 +foo_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0",service_name="prometheus_test"} 16.2 # HELP otel_scope_info Instrumentation Scope metadata # TYPE otel_scope_info gauge otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/with_namespace.txt b/exporters/prometheus/testdata/with_namespace.txt index b55dd4c7377..6d6b0369f2b 100755 --- a/exporters/prometheus/testdata/with_namespace.txt +++ b/exporters/prometheus/testdata/with_namespace.txt @@ -6,4 +6,4 @@ test_foo_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scop otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/with_resource_attributes_filter.txt b/exporters/prometheus/testdata/with_resource_attributes_filter.txt index e68ac8f5f80..60bc4d00e91 100755 --- a/exporters/prometheus/testdata/with_resource_attributes_filter.txt +++ b/exporters/prometheus/testdata/with_resource_attributes_filter.txt @@ -1,9 +1,9 @@ # HELP foo_total a simple counter # TYPE foo_total counter -foo_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0","service.name"="prometheus_test","telemetry.sdk.language"="go","telemetry.sdk.name"="opentelemetry","telemetry.sdk.version"="latest"} 24.9 +foo_total{A="B",C="D",E="true",F="42",otel_scope_name="testmeter",otel_scope_version="v0.1.0",service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 24.9 # HELP otel_scope_info Instrumentation Scope metadata # TYPE otel_scope_info gauge otel_scope_info{fizz="buzz",otel_scope_name="testmeter",otel_scope_version="v0.1.0"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1 diff --git a/exporters/prometheus/testdata/without_scope_info.txt b/exporters/prometheus/testdata/without_scope_info.txt index 6e35caee3a8..445743ac9a7 100644 --- a/exporters/prometheus/testdata/without_scope_info.txt +++ b/exporters/prometheus/testdata/without_scope_info.txt @@ -3,4 +3,4 @@ bar_ratio{A="B",C="D"} 1 # 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 +target_info{service_name="prometheus_test",telemetry_sdk_language="go",telemetry_sdk_name="opentelemetry",telemetry_sdk_version="latest"} 1