Skip to content

Commit f47516b

Browse files
committed
Use prometheus client v1 on Micrometer
1 parent 35bf36d commit f47516b

File tree

58 files changed

+1651
-154
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1651
-154
lines changed

.github/native-tests.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
{
124124
"category": "Observability",
125125
"timeout": 130,
126-
"test-modules": "smallrye-metrics, micrometer-mp-metrics, micrometer-prometheus, logging-json, observability-lgtm, opentelemetry, opentelemetry-jdbc-instrumentation, opentelemetry-mongodb-client-instrumentation, opentelemetry-redis-instrumentation, micrometer-opentelemetry",
126+
"test-modules": "smallrye-metrics, micrometer-mp-metrics, micrometer-prometheus, micrometer-prometheus-opentelemetry, logging-json, observability-lgtm, opentelemetry, opentelemetry-jdbc-instrumentation, opentelemetry-mongodb-client-instrumentation, opentelemetry-redis-instrumentation, micrometer-opentelemetry",
127127
"os-name": "ubuntu-latest"
128128
},
129129
{

bom/application/pom.xml

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<opentelemetry-instrumentation.version>2.10.0-alpha</opentelemetry-instrumentation.version>
3333
<opentelemetry-semconv.version>1.29.0-alpha</opentelemetry-semconv.version>
3434
<quarkus-http.version>5.3.5</quarkus-http.version>
35-
<micrometer.version>1.14.7</micrometer.version><!-- keep in sync with hdrhistogram: https://central.sonatype.com/artifact/io.micrometer/micrometer-core -->
35+
<micrometer.version>1.15.0</micrometer.version><!-- keep in sync with prometheus-client and hdrhistogram: https://central.sonatype.com/artifact/io.micrometer/micrometer-core -->
3636
<hdrhistogram.version>2.2.2</hdrhistogram.version><!-- keep in sync with micrometer -->
3737
<google-auth.version>0.22.0</google-auth.version>
3838
<graphql-java.version>22.2</graphql-java.version> <!-- keep in sync with smallrye-graphql -->
@@ -215,8 +215,6 @@
215215
<mutiny-zero.version>1.1.1</mutiny-zero.version>
216216
<pulsar-client.version>3.3.0</pulsar-client.version>
217217
<async-http-client.version>2.12.4</async-http-client.version>
218-
<!-- keep in-sync, if possible, with Micrometer registry Prometheus -->
219-
<prometheus.version>0.16.0</prometheus.version>
220218
<!-- Dev UI -->
221219
<importmap.version>1.0.11</importmap.version>
222220
<webauthn4j.version>0.28.0.RELEASE</webauthn4j.version>
@@ -537,18 +535,6 @@
537535
<scope>import</scope>
538536
</dependency>
539537

540-
<!-- Prometheus -->
541-
<dependency>
542-
<groupId>io.prometheus</groupId>
543-
<artifactId>simpleclient</artifactId>
544-
<version>${prometheus.version}</version>
545-
</dependency>
546-
<dependency>
547-
<groupId>io.prometheus</groupId>
548-
<artifactId>simpleclient_common</artifactId>
549-
<version>${prometheus.version}</version>
550-
</dependency>
551-
552538
<!-- Quarkus core -->
553539

554540
<dependency>

docs/src/main/asciidoc/telemetry-micrometer-to-opentelemetry.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ The JVM and HTTP server metrics are collected by Micrometer.
137137
Next, are examples of the metrics collected by Micrometer and a comparison of what would be the `quarkus-micrometer-registry-prometheus` output vs the one on this bridge. A link to the equivalent OpenTelemetry Semantic Convention is also provided for reference and is not currently used in the bridge.
138138

139139
|===
140-
|Micrometer Meter |Quarkus Micrometer Prometheus output | This bridge OpenTelemetry output name | Related OpenTelemetry Semantic Convention (not applied)
140+
|Micrometer Meter |Quarkus Micrometer Prometheus client v0.x output | This bridge OpenTelemetry output name | Related OpenTelemetry Semantic Convention (not applied)
141141

142142
|Using the @Timed interceptor.
143143
|

docs/src/main/asciidoc/telemetry-micrometer-tutorial.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ You should find something like this:
8888
----
8989
# HELP http_server_requests_seconds
9090
# TYPE http_server_requests_seconds summary
91-
http_server_requests_seconds_count{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}"} 2.0
91+
http_server_requests_seconds_count{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}"} 2
9292
http_server_requests_seconds_sum{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}"} 0.017385896
9393
# HELP http_server_requests_seconds_max
9494
# TYPE http_server_requests_seconds_max gauge

docs/src/main/asciidoc/telemetry-micrometer.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ IMPORTANT: Micrometer is the recommended approach to metrics for Quarkus.
2424
NOTE: By default, the metrics are exposed on the main HTTP server.
2525
If you would like to surface metrics from a separate management port, see the <<management-interface,Managed interface>> section.
2626

27+
NOTE: `quarkus-micrometer` now uses the Prometheus client v1.x. For help migrating from the old client, please check the https://github.com/micrometer-metrics/micrometer/wiki/1.13-Migration-Guide[Prometheus Java client 0.x to 1.x upgrade] from Micrometer.
28+
2729
== Micrometer and monitoring system extensions
2830

2931
Quarkus Micrometer extensions are structured in the same way as the Micrometer project.
@@ -33,7 +35,7 @@ Other Quarkus and Quarkiverse extensions use the Quarkus Micrometer extension to
3335
Quarkus extensions:
3436

3537
- micrometer
36-
- micrometer-registry-prometheus
38+
- micrometer-registry-prometheus (Prometheus client v1.x)
3739

3840
link:https://github.com/quarkiverse/quarkus-micrometer-registry[Quarkiverse extensions] (may be incomplete):
3941

@@ -172,7 +174,7 @@ Micrometer applies naming conventions to convert registered meter names to match
172174

173175
Given the following declaration of a timer: `registry.timer("http.server.requests")`, applied naming conventions will emit the following metrics for different monitoring systems:
174176

175-
- Prometheus: `http_server_requests_duration_seconds`
177+
- Prometheus: `http_server_requests_seconds`
176178
- Atlas: `httpServerRequests`
177179
- Graphite: `http.server.requests`
178180
- InfluxDB: `http_server_requests`
@@ -569,7 +571,6 @@ public class CustomConfiguration {
569571
if(id.getName().startsWith("myservice")) {
570572
return DistributionStatisticConfig.builder()
571573
.percentiles(0.5, 0.95) // median and 95th percentile, not aggregable
572-
.percentilesHistogram(true) // histogram buckets (e.g. prometheus histogram_quantile)
573574
.build()
574575
.merge(config);
575576
}

extensions/micrometer-registry-prometheus/deployment/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
<dependency>
2929
<groupId>io.micrometer</groupId>
30-
<artifactId>micrometer-registry-prometheus-simpleclient</artifactId>
30+
<artifactId>micrometer-registry-prometheus</artifactId>
3131
</dependency>
3232

3333
</dependencies>

extensions/micrometer-registry-prometheus/runtime/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
<dependency>
3434
<groupId>io.micrometer</groupId>
35-
<artifactId>micrometer-registry-prometheus-simpleclient</artifactId>
35+
<artifactId>micrometer-registry-prometheus</artifactId>
3636
</dependency>
3737

3838
</dependencies>

extensions/micrometer/deployment/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363

6464
<dependency>
6565
<groupId>io.micrometer</groupId>
66-
<artifactId>micrometer-registry-prometheus-simpleclient</artifactId>
66+
<artifactId>micrometer-registry-prometheus</artifactId>
6767
<scope>test</scope>
6868
</dependency>
6969

extensions/micrometer/deployment/src/main/java/io/quarkus/micrometer/deployment/export/PrometheusRegistryProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
public class PrometheusRegistryProcessor {
3535
private static final Logger log = Logger.getLogger(PrometheusRegistryProcessor.class);
3636

37-
static final String REGISTRY_CLASS_NAME = "io.micrometer.prometheus.PrometheusMeterRegistry";
37+
static final String REGISTRY_CLASS_NAME = "io.micrometer.prometheusmetrics.PrometheusMeterRegistry";
3838
static final Class<?> REGISTRY_CLASS = MicrometerRecorder.getClassForName(REGISTRY_CLASS_NAME);
3939

4040
public static class PrometheusEnabled implements BooleanSupplier {

extensions/micrometer/deployment/src/test/java/io/quarkus/micrometer/deployment/export/JsonAndPrometheusRegistryEnabledTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ public void metricsEndpoint() {
5353
.get("/relative/metrics")
5454
.then()
5555
.statusCode(200)
56-
.body(containsString("jvm_info_total{runtime=\""));
56+
.body(containsString("jvm_total{runtime=\""));
5757
}
5858
}

0 commit comments

Comments
 (0)