diff --git a/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelper.java b/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelper.java index b2a9c856992..1d4fee1c66f 100644 --- a/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelper.java +++ b/exporters/prometheus/src/main/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelper.java @@ -53,7 +53,6 @@ class PrometheusUnitsHelper { initUnit("Cel", "celsius"); initUnit("Hz", "hertz"); initUnit("%", "percent"); - initUnit("1", "ratio"); } private PrometheusUnitsHelper() {} @@ -70,12 +69,12 @@ private static void initUnit(String otelName, String pluralName, String singular @Nullable static Unit convertUnit(String otelUnit) { - if (otelUnit.isEmpty()) { + if (otelUnit.isEmpty() || otelUnit.equals("1")) { return null; } if (otelUnit.contains("{")) { otelUnit = otelUnit.replaceAll("\\{[^}]*}", "").trim(); - if (otelUnit.isEmpty() || otelUnit.equals("/")) { + if (otelUnit.isEmpty() || otelUnit.equals("/") || otelUnit.equals("1")) { return null; } } diff --git a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/Otel2PrometheusConverterTest.java b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/Otel2PrometheusConverterTest.java index 48c0ce751bd..c7618769d53 100644 --- a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/Otel2PrometheusConverterTest.java +++ b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/Otel2PrometheusConverterTest.java @@ -100,24 +100,24 @@ void metricMetadata( private static Stream metricMetadataArgs() { return Stream.of( - // the unity unit "1" is translated to "ratio" + // the unity unit "1" is unitless - no suffix added Arguments.of( createSampleMetricData("sample", "1", MetricDataType.LONG_GAUGE), - "sample_ratio gauge", - "sample_ratio description", - "sample_ratio"), + "sample gauge", + "sample description", + "sample"), // unit is appended to metric name Arguments.of( createSampleMetricData("sample", "unit", MetricDataType.LONG_GAUGE), "sample_unit gauge", "sample_unit description", "sample_unit"), - // units in curly braces are dropped + // units in curly braces are dropped, "1" is unitless Arguments.of( createSampleMetricData("sample", "1{dropped}", MetricDataType.LONG_GAUGE), - "sample_ratio gauge", - "sample_ratio description", - "sample_ratio"), + "sample gauge", + "sample description", + "sample"), // monotonic sums always include _total suffix Arguments.of( createSampleMetricData("sample", "unit", MetricDataType.LONG_SUM), @@ -126,9 +126,9 @@ private static Stream metricMetadataArgs() { "sample_unit_total"), Arguments.of( createSampleMetricData("sample", "1", MetricDataType.LONG_SUM), - "sample_ratio_total counter", - "sample_ratio_total description", - "sample_ratio_total"), + "sample_total counter", + "sample_total description", + "sample_total"), // units expressed as numbers other than 1 are retained Arguments.of( createSampleMetricData("sample", "2", MetricDataType.LONG_SUM), diff --git a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelperTest.java b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelperTest.java index 658642c024a..f9454ce837c 100644 --- a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelperTest.java +++ b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusUnitsHelperTest.java @@ -69,8 +69,8 @@ private static Stream providePrometheusOTelUnitEquivalentPairs() { Arguments.of("Cel", "celsius"), // Unit not found - Case sensitive Arguments.of("S", "S"), - // Special case - 1 - Arguments.of("1", "ratio"), + // Special case - 1 is unitless + Arguments.of("1", null), // Special Case - Drop metric units in {} Arguments.of("{packets}", null), // Special Case - Dropped metric units only in {}