Skip to content

1.13.0

Compare
Choose a tag to compare
@shakuzen shakuzen released this 13 May 19:37
· 532 commits to main since this release
v1.13.0
a5c1b72

Micrometer 1.13.0 is the GA version of a new feature release. See our support policy for support timelines and 1.13 Migration Guide for migration details.

Please take a look at the Migration Guide if you use Prometheus since there are breaking changes in the Prometheus registry if you are using the PrometheusMeterRegistry API in your code.

Below are the combined release notes of all the pre-release milestones and release candidate preceding it.

⚠️ Noteworthy

  • Deprecate Jersey server instrumentation in favour of the jersey-micrometer module in Jersey #4100
  • Add support for Prometheus client 1.x #4846 (please see the Migration Guide)
  • Deprecate instrumentation for Jetty 9, 10, 11 that is out of support #4779
  • Deprecate Hystrix instrumentation #4587
  • JvmHeapPressureMetrics have incorrect base unit #3236
  • Remove v1 CloudWatch module #1473
  • Make DefaultHttpClientObservationConvention#INSTANCE final #4770
  • Downgrade to Mockito 4 from Mockito 5 in micrometer-observation-test module #4968
  • Remove unnecessary mockito dependency in micrometer-test #4963

⭐ New Features / Enhancements

  • Remove unnecessary call to getConventionName in PrometheusMeterRegistry #4607
  • Add log for negative amount in AbstractTimer.record() #4573
  • Add response headers and trailers to gRPC observation context #4516
  • Don't overwrite reserved resource attributes #4503
  • Additional support for OTLP env vars #4500
  • Add database tag to DefaultMongoCommandTagsProvider #4298
  • ObservationGrpcServerInterceptor does not store observation in a context #4218
  • Deprecate Jersey server instrumentation in favour of the jersey-micrometer module in Jersey #4100
  • Missing option to get response headers in GrpcServerObservationConvention #4012
  • Remove metrics when shutting down InstrumentedQueuedThreadPool #4000
  • Support jOOQ 3.15 and later #3828
  • Allow customizing start log message in PushMeterRegistry implementations #4848
  • Manage context-propagation version in micrometer-bom #4847
  • Add support for Prometheus 1.x #4846
  • "Failed to publish metrics to OTLP receiver" error message contains no actionable context #4829
  • Support @Counted on classes #4746
  • Publish a separate module with jdk11 classes #4728
  • Make JettyClientMetrics compatible with Jetty12 #4609
  • Make it possible to disable LongtaskTimer creation in DefaultMeterObservationHandler #4604
  • Add Meter for process CPU time #4498
  • Make Jetty server metrics work with Jetty 12 #4261
  • OTLPMeterRegistry should adhere to OpenTelemetry data model for producing metrics #4053
  • Asserting Observation keys and value should offer suggestions from the other cardinality bucket. #4046
  • Ignore class level AOP annotation if method level present #3811
  • Remove v1 CloudWatch module #1473
  • Log CloudWatch metric data when publishing fails #1396
  • [Dynatrace] debug log in exporter when no meters are registered #4951
  • Warn when a MeterFilter is configured after a meter is registered #4917
  • Allow customizing PrometheusProperties via PrometheusConfig #4875
  • Add Exemplars support to Prometheus 1.x #4867
  • Sanitize metric names for the Prometheus client #4866
  • Add constructor with logger name for WarnThenDebugLogger #4865
  • Do not re-apply MeterFilters to IDs when registering if unnecessary #4856
  • Announce OtlpMeterRegistry configuration found at startup #4830
  • Record Jetty bytes in/out metrics through network listeners #4514

🐞 Bug Fixes

  • com.google.cloud:libraries-bom version is not pinned #4711
  • BOM contains reference to unpublished docs module #4585
  • [Dynatrace] Logging verbosity: Move metadata discrepancy logging to WarnThenDebug #4583
  • ObservationGrpcServerCallListener does not capture an uncontrolled error during the execution of the service logic #4490
  • URL decode headers from environment variables in OtlpConfig #4595
  • @MeterTag does not work on package private method #4506
  • DefaultLongTaskTimer class throws an IllegalArgumentException when percentiles is empty #4482
  • Stackdriver exception trying to publish metrics during shutdown #4353
  • TimeWindowMax throws ArithmeticException with a rotateFrequency of 0 #3068
  • JvmGcMetricsTest#sizeMetricsNotSetToZero is failing on CI with generational ZGC #4497
  • Bug: DropwizardMeterRegistry does not remove Gauges created by LongTaskTimer #2924
  • JvmHeapPressureMetrics have incorrect base unit #3236
  • GC Pause time metric includes concurrent cycle time for Generational ZGC #4764
  • OSGi import of javax.annotation and javax.annotation.meta is incorrect #4824
  • Use Dynatrace snapshot for LongTaskTimer #4780
  • CloudWatchMeterRegistry logs timeout message when there was an interrupt and does not log anything when there was a timeout #4775
  • NullPointerException in DefaultJmsProcessObservationConvention #4966
  • OTLP Gauge datapoint timestamp should be time at sampling #5044
  • AnnotationHandler can't see methods from parent class #4983
  • JettyConnectionMetrics#addToAllConnectors does not configure bytes in/out metrics #5092
  • Do not set explicit unit on Prometheus 1.x Metadata #5038
  • MeterRegistry#removeByPreFilterId returns null when multiple pre-filter IDs map to same ID #5035
  • Use GaugeHistogram for Prometheus LongTaskTimer #4988

📔 Documentation

  • Document newly supported OTLP env vars #4566
  • Observation API bird's eye view #4726
  • Replace full urls to xref wherever it is possible #4714
  • Update docs with changes from old docs site #4611
  • Reference doc update for tomcat #4599
  • Reference doc update for system #4598
  • Reference doc update for mongodb #4594
  • Reference doc update for logging #4593
  • Reference doc update for Kafka #4592
  • Reference doc update for OkHttp #4586
  • Added Jetty reference doc #4584
  • HttpClient reference documentation #4579
  • gRPC reference documentation #4575
  • Database reference documentation #4574
  • Added examples of Apache Commons Pool #4570
  • Added examples of cache usage #4569
  • Clarify time window length in documentation #4625
  • Document Java HttpClient instrumentation #4752
  • Document Jetty bytes in/out instrumentation via NetworkTrafficListener #4981
  • Document support for Prometheus Client 1.x #4957

🔨 Dependency Upgrades

  • Bump com.google.auth:google-auth-library-oauth2-http from 1.22.0 to 1.23.0 #4732
  • Bump dropwizard-metrics from 4.2.23 to 4.2.25 #4663
  • Downgrade okhttp to 4.11.0 upgrade Kotlin to 1.9 #4597
  • Bump com.amazonaws:aws-java-sdk-cloudwatch from 1.12.715 to 1.12.720 #5089
  • Bump software.amazon.awssdk:cloudwatch from 2.25.45 to 2.25.50 #5084
  • Bump org.hdrhistogram:HdrHistogram from 2.1.12 to 2.2.1 #5052
  • Bump jersey2 from 2.42 to 2.43 #5047
  • Bump com.google.cloud:libraries-bom from 26.37.0 to 26.38.0 #5025
  • Bump com.signalfx.public:signalfx-java from 1.0.40 to 1.0.41 #5024
  • Bump io.opentelemetry.proto:opentelemetry-proto from 1.1.0-alpha to 1.2.0-alpha #5021
  • Bump com.netflix.spectator:spectator-reg-atlas from 1.7.11 to 1.7.12 #5014
  • Bump com.dynatrace.metric.util:dynatrace-metric-utils-java from 2.2.0 to 2.2.1 #5012
  • Bump com.google.cloud:google-cloud-monitoring from 3.42.0 to 3.43.0 #5011

📝 Tasks

  • Update gRPC trailers metadata consumption by observation context #4612
  • Add sample for MultiGauge #4618
  • Enable whenConnectionCheckedInAfterPoolClose_thenNoExceptionThrown() #4603
  • Clarify complete expiry of distribution statistics in Javadoc #4581
  • Remove JDK 19-specific tests in TagsTest #4512
  • Use LongAdder in CumulativeTimer and CumulativeDistributionSummary #4496
  • Add integration tests for Prometheus #5039

❤️ Contributors

Thank you to all the contributors who worked on this release:

@izeye, @MartinUhlen, @zeitlinger, @pirgeo, @nathankooij, @ttddyy, @wakingrufus, @climategadgets, @monosoul, @quaff, @ponziani, @simonzn, @adpaste, @joakime, @lenin-jaganathan, @cachescrubber, @heowc, @pichlermarc, @tdinev, and @MartinUhlen