⚠️ Noteworthy
- Replace the OpenTelemetry protobuf library #5658
- Add config option to compress Datadog payload #2297
⭐ New Features
- Optimize PrometheusMeterRegistry and MicrometerCollector snapshot collection #7802
- Skip registering JCache meters when statistics are not enabled #7562
- Fail collision validation at registration instead of at scrape with typed Prometheus family descriptors #7487
- Prometheus: unnecessary allocation and validation performed on every scrape #7450
- Bump Kotlin target from 1.8 to 2.0 #7338
- Add option for time-based FunctionCounter #7329
- Remove lastScope field and deprecated implementations from SimpleObservation #7273
- Replace the OpenTelemetry protobuf library #5658
- KeyValue support for Observation.Event #5238
- Add config option to compress Datadog payload #2297
🐞 Bug Fixes
- OTLP publishing fails if a cumulative LongTaskTimer present with a histogram #7830
- Race condition in registry searching and MeterNotFoundException creation may result in a failure that looks as if it should have succeeded #2307
- ClassNotFoundException: org.LatencyUtils.PauseDetector is thrown when introspecting AbstractTimer #7815
- Prometheus custom meters: creation timestamps are incorrect #7798
- Fix memory leak/NPE in MicrometerHttpClientInterceptor (HC4 & HC5)
- Sanitize line terminators in Dogstatsd, Etsy StatsD, and LoggingMeterRegistry
🔨 Dependency Upgrades
- Bump org.apache.httpcomponents.client5:httpclient5 from 5.6.1 to 5.6.4 #7827
- Bump jetty12 from 12.0.8 to 12.1.12 #7821
- Bump io.netty:netty-bom from 4.2.15.Final to 4.2.17.Final #7819
- Bump software.amazon.awssdk:cloudwatch from 2.46.5 to 2.51.3 #7818
- Bump com.google.cloud:libraries-bom from 26.83.0 to 26.86.0 #7794
- Bump com.google.auth:google-auth-library-oauth2-http from 1.48.0 to 1.50.0 #7793
- Bump com.google.cloud:google-cloud-monitoring from 3.94.0 to 3.96.0 #7790
- Bump com.netflix.spectator:spectator-reg-atlas from 1.9.9 to 1.10.5 #7792
- Bump grpc from 1.81.0 to 1.83.1 #7787
- Bump ch.qos.logback:logback-classic from 1.5.34 to 1.6.1 #7780
- Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.7.3 to 1.11.0 #7476
- Bump org.postgresql:postgresql from 42.7.11 to 42.7.13 #7708
- Bump org.apache.logging.log4j:log4j-core from 2.26.0 to 2.26.1 #7699
- Bump activemq-artemis from 2.54.0 to 2.55.0 #7684
- Bump dagger from 2.59.2 to 2.60 #7670
- Bump com.github.ben-manes.caffeine:caffeine from 3.2.3 to 3.2.4 in /samples/micrometer-samples-caffeine3 #7639
- Bump io.prometheus:prometheus-metrics-bom from 1.7.0 to 1.8.0 #7615
📝 Tasks
- Add sample to print out OTLP output in a human readable format #7832
- Update japicmp config for 1.18.0 development #7727
- Add separate Dependabot configurations for sample dependency versions #7632
- Bump CircleCI build images #7826
- Disable deploy job for milestone, RC, and GA releases #7776
- Migrate 1.16.x to Gradle 9 #7762
- Fix flakiness in JvmGcMetricsTest.gcMetricsAvailableAfterGc #7729
- Remove downloadDependencies task and optimize CI dependency caching #7720
- JvmGcMetricsTest gcMetricsAvailableAfterGc is flakey #7680
- Fix NullPointerException in StatsdMeterRegistryPublishTest #7679
- Move fixed dependency versions to gradle.properties to hide them from Dependabot #7668
- Add initial release orchestration infrastructure #7667
- Update build configuration for release train participation #7665
- Fix ineffective ExemplarSampler cache in DefaultExemplarSamplerFactory #7657
- Note micrometer-jetty11 deprecation in the artifact description #7651
- Move secondary dependency versions out of Version Catalog #7621
- Cache baseline JARs on CI #7102
❤️ Contributors
Thank you to all the contributors who worked on this release:
@arimu1, @kalayciburak, antonio-pedro99, @jewoodev, @zeitlinger, schiemon, and @m-burst