Skip to content

Update Telemetry (OpenTelemetry & Prometheus)#4594

Open
solrbot wants to merge 4 commits into
apache:mainfrom
solrbot:renovate/telemetry-(opentelemetry-and-prometheus)
Open

Update Telemetry (OpenTelemetry & Prometheus)#4594
solrbot wants to merge 4 commits into
apache:mainfrom
solrbot:renovate/telemetry-(opentelemetry-and-prometheus)

Conversation

@solrbot

@solrbot solrbot commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
io.prometheus:prometheus-metrics-model dependencies minor 1.1.01.8.0
io.prometheus:prometheus-metrics-exposition-formats dependencies minor 1.1.01.8.0
io.opentelemetry:opentelemetry-sdk-trace dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-sdk-testing dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-sdk-metrics dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-sdk dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-exporter-otlp dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-context dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-bom dependencies minor 1.56.01.63.0
io.opentelemetry:opentelemetry-api dependencies minor 1.56.01.63.0

Release Notes

prometheus/client_java (io.prometheus:prometheus-metrics-model)

v1.8.0

Features
Bug Fixes
Documentation

v1.7.0

Features
Bug Fixes
  • deps: update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 (#​2088) (144eb61)
  • deps: update dependency io.dropwizard.metrics:metrics-core to v4.2.39 (#​2139) (5817d13)
  • deps: update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 (#​2140) (261c451)
  • deps: update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha (#​2126) (b62b5d0)
  • deps: update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha (#​2127) (e11ce3d)
  • deps: update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha (#​2132) (b09be38)
  • deps: update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha (#​2133) (a241c16)
  • deps: update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.22 (#​2099) (22125c5)
  • deps: update jetty monorepo to v12.1.10 (#​2169) (ddd3991)
  • deps: update jetty monorepo to v12.1.9 (#​2102) (04bee70)
  • deps: update protobuf (#​2129) (320538a)
  • Reduce allocations for classic histogram buckets (#​2081) (edd160a)
  • restore legacy suffix compatibility (#​2100) (b2ae70f)
  • restore reserved suffix stripping in PrometheusNaming.sanitizeMetricName() (#​2124) (2d0f508)
Performance Improvements
Documentation

v1.6.1

Note: With the OM2 metric-name preservation fix in this release, OpenMetrics 2.0 can now be
tested. It is still in progress and not ready for general use yet.

Bug Fixes
Documentation

v1.6.0

Note: OpenMetrics 2.0 support is still in progress and not ready for general use yet.

As part of the OM2 work, metric-name suffix handling moved from metric creation time to scrape
time. A positive side effect is that metric names are now more flexible across the board, for
example names ending in suffixes like _total are accepted where they were previously rejected.
To keep the Prometheus and OM1 output unambiguous, the registry tracks claimed exposition names
and still rejects registrations that would collide at scrape time.

Downstream adapter libraries that implement MultiCollector need their registration-time
metadata to match the metric families they emit at scrape time. When upgrading to 1.6.0+, adapter
registration metadata needs to stay aligned with emitted names, types, label names, and suffix
behavior under the new collision model.
See also: Validation at registration only

Example Before 1.6.0 Since 1.6.0 Reason
Gauge("foo_total") Rejected Allowed Not breaking because this previously failed at registration, so no working setup changes behavior, and safe because _total suffix expansion applies to counters, not gauges.
Counter("events_total") Rejected Allowed Not breaking because the OM1 output is still events_total; only the builder now accepts the name.
Gauge("foo_total") + Histogram("foo") Rejected Allowed Not breaking because this combination used to be blocked even though the exposed names do not overlap.
Gauge("events_total") + Counter("events") Rejected Rejected Not breaking because the ambiguous OM1 output would still expose two events_total series.
Gauge("foo_count") + Histogram("foo") Allowed Rejected Intentionally breaking because the old behavior could expose a conflicting foo_count name at scrape time.
Features
Bug Fixes
  • deps: update dependency com.google.guava:guava to v33.6.0-jre (#​2021) (1382693)
  • deps: update dependency commons-io:commons-io to v2.22.0 (#​2044) (9e05c1d)
  • deps: update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.27.0-alpha (#​2022) (30ac534)
  • deps: update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.27.0-alpha (#​2023) (2d51a32)
  • deps: update dependency io.prometheus:prometheus-metrics-bom to v1.5.1 (#​2004) (650ce4b)
  • deps: update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.21 (#​2005) (7a36df7)
  • deps: update dependency org.springframework.boot:spring-boot-starter-parent to v4.0.5 (#​2006) (0106c18)
  • deps: update dependency org.springframework.boot:spring-boot-starter-parent to v4.0.6 (#​2046) (40a9db8)
  • deps: update jetty monorepo to v12.1.8 (#​2007) (acab5b2)
  • deps: update protobuf (#​2024) (8e2214e)
  • pass release tag as input to deploy workflow (#​1982) (165c921)
  • pin grafana/otel-lgtm to 0.7.2 in OATs acceptance test (#​1992) (f17ad9a)
  • stabilize flaky timer and thread count tests (#​1973) (ce5867b)
  • trigger Maven deploy from release-please via workflow_dispatch (#​1981) (698f956)

v1.5.1

Bug Fixes
Documentation

v1.5.0

Highlights
Performance
  • Improve histogram/summary performance under contention (#​1794) by @​jack-berg — Significant throughput improvements for high-contention scenarios by striping observationCount across multiple instances. Benchmarks show prometheusClassic improving from ~5,126 ops/s to ~14,624 ops/s (~185% improvement) and prometheusNative from ~3,854 ops/s to ~7,406 ops/s (~92% improvement).
Configuration
  • Support environment variables in properties (#​1828) by @​zeitlinger — Adds environment variable support for configuration (e.g., IO_PROMETHEUS_EXPORTER_HTTP_SERVER_PORT) while maintaining full backward compatibility. Also introduces snake_case property naming (recommended) while keeping camelCase working.
API
  • Allow metrics with the same name but different labels (#​1800) by @​jaydeluca — Enables registration of metrics with the same name, with validation at both registration and scrape time.
  • Add stable Metrics class to decouple consumers from protobuf version (#​1873) by @​zeitlinger — Introduces a stable Metrics class so consumer code no longer needs import updates on protobuf upgrades.
OpenTelemetry
  • Add OTel support module and make examples standalone (#​1868) by @​zeitlinger — New prometheus-metrics-otel-support module that bundles the OTel SDK and Prometheus exporter as a single dependency. Examples are now standalone and can be copy-pasted directly.
  • Add docs and example for OTel JVM runtime metrics (#​1861) by @​zeitlinger
Exporters
  • Add metricsHandlerPath and registerHealthHandler configuration options to HTTPServer (#​1735) by @​Donnerbart
  • Disable compression in PrometheusScrapeHandler (#​1691) by @​Myllyenko — Adds ability to disable compression in PrometheusScrapeHandler.
  • Prevent exception in HttpServer exporter when using custom root metrics path (#​1772) by @​Donnerbart
Instrumentation

What's Changed
🏕 Features
🔧 Maintenance
🧹 Chore
👒 Dependencies

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Every minute (* * * * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot

solrbot and others added 3 commits July 2, 2026 15:35
…rometheus license files

- Bump opentelemetry-exporter-prometheus 1.56.0-alpha -> 1.63.0-alpha to match
  the 1.63.0 SDK (fixes NoClassDefFoundError io/opentelemetry/sdk/internal/ThrottlingLogger
  and Otel2PrometheusConverter init failures in SolrJ tests).
- Bump opentelemetry-runtime-telemetry 2.22.0-alpha -> 2.27.0-alpha (latest) so its
  transitive opentelemetry-api-incubator provides DeclarativeConfigProperties.get(String)
  required by SDK 1.63.0 autoconfigure (fixes NoSuchMethodError in opentelemetry module tests).
- Add LICENSE-ASL/NOTICE files for new prometheus transitive deps
  prometheus-metrics-config and prometheus-metrics-exposition-textformats.
- Regenerate lockfiles and license checksums (semconv 1.37.0 -> 1.40.0 transitively).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants