diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/prometheus/TextOutputFormat.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/prometheus/TextOutputFormat.java index 4831d37cf3f..54b16b7110c 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/prometheus/TextOutputFormat.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/prometheus/TextOutputFormat.java @@ -35,18 +35,6 @@ import org.springframework.util.MimeTypeUtils; */ public enum TextOutputFormat implements Producible { - /** - * OpenMetrics text version 1.0.0. - */ - CONTENT_TYPE_OPENMETRICS_100(TextFormat.CONTENT_TYPE_OPENMETRICS_100) { - - @Override - void write(Writer writer, Enumeration samples) throws IOException { - TextFormat.writeOpenMetrics100(writer, samples); - } - - }, - /** * Prometheus text version 0.0.4. */ @@ -57,6 +45,23 @@ public enum TextOutputFormat implements Producible { TextFormat.write004(writer, samples); } + @Override + public boolean isDefault() { + return true; + } + + }, + + /** + * OpenMetrics text version 1.0.0. + */ + CONTENT_TYPE_OPENMETRICS_100(TextFormat.CONTENT_TYPE_OPENMETRICS_100) { + + @Override + void write(Writer writer, Enumeration samples) throws IOException { + TextFormat.writeOpenMetrics100(writer, samples); + } + }; private final MimeType mimeType; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/export/prometheus/PrometheusScrapeEndpointIntegrationTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/export/prometheus/PrometheusScrapeEndpointIntegrationTests.java index 9b0419efeec..dbce312303b 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/export/prometheus/PrometheusScrapeEndpointIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/export/prometheus/PrometheusScrapeEndpointIntegrationTests.java @@ -55,6 +55,14 @@ class PrometheusScrapeEndpointIntegrationTests { .contains("counter1_total").contains("counter2_total").contains("counter3_total")); } + @WebEndpointTest + void scrapePrefersToProduceOpenMetrics100(WebTestClient client) { + MediaType openMetrics = MediaType.parseMediaType(TextFormat.CONTENT_TYPE_OPENMETRICS_100); + MediaType textPlain = MediaType.parseMediaType(TextFormat.CONTENT_TYPE_004); + client.get().uri("/actuator/prometheus").accept(openMetrics, textPlain).exchange().expectStatus().isOk() + .expectHeader().contentType(openMetrics); + } + @WebEndpointTest void scrapeWithIncludedNames(WebTestClient client) { client.get().uri("/actuator/prometheus?includedNames=counter1_total,counter2_total").exchange().expectStatus()