Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Add docs and example for OTel JVM runtime metrics#1861

Merged
zeitlinger merged 12 commits intomainprometheus/client_java:mainfrom
otel-metricsprometheus/client_java:otel-metricsCopy head branch name to clipboard
Feb 12, 2026
Merged

Add docs and example for OTel JVM runtime metrics#1861
zeitlinger merged 12 commits intomainprometheus/client_java:mainfrom
otel-metricsprometheus/client_java:otel-metricsCopy head branch name to clipboard

Conversation

@zeitlinger
Copy link
Member

@zeitlinger zeitlinger commented Feb 9, 2026

Alternative for #1854

Summary

  • Add documentation for using OpenTelemetry's runtime-telemetry module as an alternative to prometheus-metrics-instrumentation-jvm for JVM metrics following OTel semantic conventions
  • Add a runnable example project (examples/example-otel-jvm-runtime-metrics) demonstrating combined Prometheus + OTel runtime metrics on a single /metrics endpoint
  • Document RuntimeMetricsBuilder configuration options (captureGcCause(), emitExperimentalTelemetry())
  • Cover standalone setup, combined setup with PrometheusMetricReader, Java 17 JFR support, and OTel-to-Prometheus metric name mapping

Test plan

  • mise run build passes
  • mise run lint:super-linter passes
  • Manual: java -jar examples/example-otel-jvm-runtime-metrics/target/example-otel-jvm-runtime-metrics.jar then curl localhost:9400/metrics shows both uptime_seconds_total and jvm_* metrics

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger self-assigned this Feb 9, 2026
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: jdx/mise-action@6d1e696aa24c1aa1bcc1adea0212707c71ab78a8 # v3.6.1

- name: Remap main branch URLs to PR branch for link checking
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not related to this PR, but a good opportunity to fix - last time I merged with this check failing and I didn't like it

@zeitlinger zeitlinger closed this Feb 9, 2026
@zeitlinger zeitlinger reopened this Feb 9, 2026
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation and a runnable example showing how to expose OpenTelemetry JVM runtime metrics (runtime-telemetry) alongside Prometheus Java client metrics on a single /metrics endpoint, including configuration notes and name-mapping guidance.

Changes:

  • Adds a new runnable Maven example module demonstrating combined Prometheus + OTel JVM runtime metrics on one endpoint.
  • Adds a new docs page describing standalone vs combined setup, configuration toggles, Java 17 JFR notes, and OTel→Prometheus metric name mapping.
  • Adjusts link-lint workflow behavior to handle links pointing at main for newly added files.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
examples/pom.xml Adds the new example module to the examples reactor build.
examples/example-otel-jvm-runtime-metrics/src/main/java/io/prometheus/metrics/examples/otelruntimemetrics/Main.java Demonstrates wiring PrometheusMetricReader into a shared PrometheusRegistry and serving via HTTPServer.
examples/example-otel-jvm-runtime-metrics/pom.xml Adds OTel SDK/exporter/runtime-telemetry dependencies and shaded runnable jar packaging.
examples/example-otel-jvm-runtime-metrics/README.md Provides build/run instructions and expected /metrics output excerpts.
docs/content/otel/jvm-runtime-metrics.md New documentation page describing OTel runtime metrics usage patterns and options.
docs/content/instrumentation/jvm.md Adds a note linking to the new OTel runtime metrics alternative docs.
.github/workflows/lint-rest.yml Updates permissions and adds PR-branch URL remapping for link checking.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

examples/example-otel-jvm-runtime-metrics/pom.xml Outdated Show resolved Hide resolved
.github/workflows/lint-rest.yml Outdated Show resolved Hide resolved
Copy link
Collaborator

@jaydeluca jaydeluca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

couple small nitpicks but lgtm

examples/example-otel-jvm-runtime-metrics/pom.xml Outdated Show resolved Hide resolved
docs/content/otel/jvm-runtime-metrics.md Outdated Show resolved Hide resolved
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger merged commit 64c521b into main Feb 12, 2026
10 checks passed
@zeitlinger zeitlinger deleted the otel-metrics branch February 12, 2026 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments

Close sidebar
Morty Proxy This is a proxified and sanitized view of the page, visit original site.