Skip to content

Commit b06dcb8

Browse files
committed
Add JVM metrics
Signed-off-by: Fabian Stäber <[email protected]>
1 parent f9a42e6 commit b06dcb8

File tree

38 files changed

+2627
-0
lines changed

38 files changed

+2627
-0
lines changed

examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>prometheus-metrics-core</artifactId>
3838
<version>${project.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>io.prometheus</groupId>
42+
<artifactId>prometheus-metrics-instrumentation-jvm</artifactId>
43+
<version>${project.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>io.prometheus</groupId>
4247
<artifactId>prometheus-metrics-exporter-servlet-jakarta</artifactId>

examples/example-exemplars-tail-sampling/example-greeting-service/src/main/java/io/prometheus/metrics/examples/otel_exemplars/greeting/Main.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.prometheus.metrics.examples.otel_exemplars.greeting;
22

33
import io.prometheus.metrics.exporter.servlet.jakarta.PrometheusMetricsServlet;
4+
import io.prometheus.metrics.instrumentation.jvm.JvmMetrics;
45
import org.apache.catalina.Context;
56
import org.apache.catalina.LifecycleException;
67
import org.apache.catalina.startup.Tomcat;
@@ -14,6 +15,8 @@ public class Main {
1415

1516
public static void main(String[] args) throws LifecycleException {
1617

18+
JvmMetrics.newBuilder().register();
19+
1720
Tomcat tomcat = new Tomcat();
1821
tomcat.setPort(8081);
1922

examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>prometheus-metrics-core</artifactId>
3838
<version>${project.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>io.prometheus</groupId>
42+
<artifactId>prometheus-metrics-instrumentation-jvm</artifactId>
43+
<version>${project.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>io.prometheus</groupId>
4247
<artifactId>prometheus-metrics-exporter-servlet-jakarta</artifactId>

examples/example-exemplars-tail-sampling/example-hello-world-app/src/main/java/io/prometheus/metrics/examples/otel_exemplars/app/Main.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.prometheus.metrics.examples.otel_exemplars.app;
22

33
import io.prometheus.metrics.exporter.servlet.jakarta.PrometheusMetricsServlet;
4+
import io.prometheus.metrics.instrumentation.jvm.JvmMetrics;
45
import org.apache.catalina.Context;
56
import org.apache.catalina.LifecycleException;
67
import org.apache.catalina.startup.Tomcat;
@@ -14,6 +15,8 @@ public class Main {
1415

1516
public static void main(String[] args) throws LifecycleException {
1617

18+
JvmMetrics.newBuilder().register();
19+
1720
Tomcat tomcat = new Tomcat();
1821
tomcat.setPort(8080);
1922

examples/example-exporter-httpserver/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>prometheus-metrics-core</artifactId>
3838
<version>${project.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>io.prometheus</groupId>
42+
<artifactId>prometheus-metrics-instrumentation-jvm</artifactId>
43+
<version>${project.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>io.prometheus</groupId>
4247
<artifactId>prometheus-metrics-exporter-httpserver</artifactId>

examples/example-exporter-httpserver/src/main/java/io/prometheus/metrics/examples/httpserver/Main.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.prometheus.metrics.core.metrics.Counter;
44
import io.prometheus.metrics.exporter.httpserver.HTTPServer;
5+
import io.prometheus.metrics.instrumentation.jvm.JvmMetrics;
56
import io.prometheus.metrics.model.snapshots.Unit;
67

78
import java.io.IOException;
@@ -13,6 +14,14 @@ public class Main {
1314

1415
public static void main(String[] args) throws IOException, InterruptedException {
1516

17+
JvmMetrics.newBuilder().register();
18+
19+
// Note: uptime_seconds_total is not a great example:
20+
// The built-in JvmMetrics have an out-of-the-box metric named process_start_time_seconds
21+
// with the start timestamp in seconds, so if you want to know the uptime you can simply
22+
// run the Prometheus query
23+
// time() - process_start_time_seconds
24+
// rather than creating a custom uptime metric.
1625
Counter counter = Counter.newBuilder()
1726
.withName("uptime_seconds_total")
1827
.withHelp("total number of seconds since this application was started")

examples/example-exporter-opentelemetry/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>prometheus-metrics-core</artifactId>
3838
<version>${project.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>io.prometheus</groupId>
42+
<artifactId>prometheus-metrics-instrumentation-jvm</artifactId>
43+
<version>${project.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>io.prometheus</groupId>
4247
<artifactId>prometheus-metrics-exporter-opentelemetry</artifactId>

examples/example-exporter-opentelemetry/src/main/java/io/prometheus/metrics/examples/opentelemetry/Main.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.prometheus.metrics.core.metrics.Counter;
44
import io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter;
5+
import io.prometheus.metrics.instrumentation.jvm.JvmMetrics;
56
import io.prometheus.metrics.model.snapshots.Unit;
67

78
/**
@@ -11,6 +12,17 @@ public class Main {
1112

1213
public static void main(String[] args) throws Exception {
1314

15+
// Note: Some JVM metrics are also defined as OpenTelemetry's semantic conventions.
16+
// We have plans to implement a configuration option for JvmMetrics to use OpenTelemetry
17+
// naming conventions rather than the Prometheus names.
18+
JvmMetrics.newBuilder().register();
19+
20+
// Note: uptime_seconds_total is not a great example:
21+
// The built-in JvmMetrics have an out-of-the-box metric named process_start_time_seconds
22+
// with the start timestamp in seconds, so if you want to know the uptime you can simply
23+
// run the Prometheus query
24+
// time() - process_start_time_seconds
25+
// rather than creating a custom uptime metric.
1426
Counter counter = Counter.newBuilder()
1527
.withName("uptime_seconds_total")
1628
.withHelp("total number of seconds since this application was started")

examples/example-exporter-servlet-tomcat/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>prometheus-metrics-core</artifactId>
3838
<version>${project.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>io.prometheus</groupId>
42+
<artifactId>prometheus-metrics-instrumentation-jvm</artifactId>
43+
<version>${project.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>io.prometheus</groupId>
4247
<artifactId>prometheus-metrics-exporter-servlet-jakarta</artifactId>

examples/example-exporter-servlet-tomcat/src/main/java/io/prometheus/metrics/examples/tomcat_servlet/HelloWorldServlet.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public class HelloWorldServlet extends HttpServlet {
1919

2020
private final Random random = new Random(0);
2121

22+
// Note: The requests_total counter is not a great example, because the
23+
// request_duration_seconds histogram below also has a count with the number of requests.
2224
private final Counter counter = Counter.newBuilder()
2325
.withName("requests_total")
2426
.withHelp("total number of requests")

0 commit comments

Comments
 (0)