diff --git a/exporters/prometheus/build.gradle.kts b/exporters/prometheus/build.gradle.kts index 16740f353dc..492c7085ba7 100644 --- a/exporters/prometheus/build.gradle.kts +++ b/exporters/prometheus/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { implementation("io.prometheus:prometheus-metrics-exporter-httpserver") { exclude(group = "io.prometheus", module = "prometheus-metrics-exposition-formats") } - implementation("io.prometheus:prometheus-metrics-exposition-textformats") + implementation("io.prometheus:prometheus-metrics-exposition-formats-no-protobuf") compileOnly("com.google.auto.value:auto-value-annotations") @@ -23,7 +23,6 @@ dependencies { testImplementation(project(":sdk:testing")) testImplementation("io.opentelemetry.proto:opentelemetry-proto") - testImplementation("io.prometheus:prometheus-metrics-exposition-formats-no-protobuf") testImplementation("com.sun.net.httpserver:http") testImplementation("com.google.guava:guava") testImplementation("com.linecorp.armeria:armeria") diff --git a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerTest.java b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerTest.java index 2b1f27b8a3e..791c46165ef 100644 --- a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerTest.java +++ b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerTest.java @@ -239,6 +239,25 @@ void fetchOpenMetrics() { + "# EOF\n"); } + @Test + void fetchProtobuf() { + AggregatedHttpResponse response = + client + .execute( + RequestHeaders.of( + HttpMethod.GET, + "/metrics", + HttpHeaderNames.ACCEPT, + "Accept: application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily")) + .aggregate() + .join(); + assertThat(response.status()).isEqualTo(HttpStatus.OK); + assertThat(response.headers().get(HttpHeaderNames.CONTENT_TYPE)) + .isEqualTo( + "application/vnd.google.protobuf; proto=io.prometheus.client.MetricFamily; encoding=delimited"); + // don't decode the protobuf, just verify it doesn't throw an exception + } + @SuppressWarnings("ConcatenationWithEmptyString") @Test void fetchFiltered() { diff --git a/sdk-extensions/autoconfigure/build.gradle.kts b/sdk-extensions/autoconfigure/build.gradle.kts index 72d6b88bec6..3d54ea736c4 100644 --- a/sdk-extensions/autoconfigure/build.gradle.kts +++ b/sdk-extensions/autoconfigure/build.gradle.kts @@ -52,7 +52,9 @@ testing { implementation(project(":exporters:logging-otlp")) implementation(project(":exporters:otlp:all")) implementation(project(":exporters:prometheus")) - implementation("io.prometheus:prometheus-metrics-exporter-httpserver") + implementation("io.prometheus:prometheus-metrics-exporter-httpserver") { + exclude(group = "io.prometheus", module = "prometheus-metrics-exposition-formats") + } implementation(project(":exporters:zipkin")) implementation(project(":sdk:testing")) implementation(project(":sdk:trace-shaded-deps"))