github micrometer-metrics/micrometer v1.10.0
1.10.0

latest releases: v1.14.0-RC1, v1.13.6, v1.12.11...
24 months ago

Micrometer 1.10.0 is the GA version of a new feature release. See our support policy for support timelines. Below are the combined release notes of all the pre-release milestones and release candidate preceding it.

⚠️ Noteworthy

⭐ New Features / Enhancements

  • Add gRPC authority info to the observation context #3510
  • Add "get[Low|High]CardinalityKeyValue()" on "Observation.Context" #3505
  • Verify sender propagation for HTTP client instrumentation #3504
  • Add support for creating KeyValues from any iterable #3503
  • Added remoteServiceAddress for Sender / Receiver contexts #3500
  • Provide a default for missing values in KeyValue #3458
  • Allow documenting optional keys #3454
  • Add wrap functionality to the Observation #3433
  • Add Observation instrumentation for gRPC client and server #3427
  • Add TestObservationRegistryAssert assertion for observation count #3426
  • Make observation return its context and immutable access to parent #3423
  • ReceiverContext was missing a remoteServiceName #3419
  • Handle IO_ERROR for Apache HTTP client with observation API #3418
  • Tck with observations #3410
  • Set size and characteristics for Spliterator used with Tags and KeyValues #3409
  • Test against ObservationDocumentation in instrumentation TCK #3372
  • Add benchmarks for the Observation API #3370
  • Support for Jetty 11 #3234
  • Add "createNotStarted" method that lazily creates context #3401
  • Context allows modification of KeyValues #3383
  • Cloudwatch max batchSize was increased from 20 to 1000 #3376
  • Events in DocumentedObservation #3367
  • signalfx: remove unnecessary allocation if the distribution summary does not have histogram #3364
  • Remote service name for sender context #3363
  • Common ResponseContext interface for interacting with the response #3362
  • JDK11 HttpClient instrumentation #3358
  • Abstraction for instrumentating with a Timer or Observation (optionally) #3357
  • [signalfxregistry]: Add option to send delta histogram count buckets. #3350
  • Apache HTTP client instrumentation with Observation #3312
  • Generify throwable in CheckedCallable/CheckedRunnable #3326
  • Scoped checked actions #3323
  • ObservationContextAssert now asserts ContextView, add parentObservation assertions #3304
  • Add ObservationRegistry hasRemainingCurrentScope and similar assertions #3303
  • Add getContextualName(Context c) on Observation.Convention #3301
  • Receiver and SenderContext #3293
  • Added option to set a parent Observation on an existing Observation #3291
  • Introduces GlobalObservationConvention #3285
  • Declare HdrHistogram as a runtime dependency #3263
  • Observe instantaneous events #3100
  • Add primitive Suppliers to Timer and LongTaskTimer #1304
  • Add assertions for multiple handled test contexts #3274
  • Added the ObservationConventionAware interface #3270
  • Add ObservationContextAssert error assertions #3267
  • Improved keys assertions in ObservationContextAssert #3266
  • Further improvement of observation convention #3261
  • Added support for Kotlin co-routines #3256
  • New approach to naming conventions #3255
  • Add KeyValues to the Observation #3244
  • @Observed #3221
  • Add a LongTaskTimer for every Observation in TimerObservationHandler #3215
  • Add DynatraceConfig.DEFAULT #3202
  • OkHttp3 instrumentation with observation api #3176
  • Support for different metric prefixes in StackdriverMeterRegistry #3171
  • Unable to load MacOSDnsServerAddressStreamProvider on Apple Silicon with statsd meter registries #3066
  • Add HighCardinalityTagsDetector #3047
  • Http client instrumentation TCK #3258
  • Added the getCurrentObservationScope method #3158
  • Config for OTLP Resource attributes #3159
  • Dynatrace registry: Print ignored config warning only when necessary #3155
  • Dynatrace registry: Truncate log output #3148
  • Use more generic KeyValue terminology in Observation and Common module #3126
  • NOOP Observation should be created when no handlers are registered #3105
  • MeterRegistryAssert provides checks for all type of meters #3104
  • Add MongoCommandStartedEventTags for Mongodb metrics #3069
  • Make _source.enabled configurable for ElasticMeterRegistry #2363
  • Added Global Tags Provider #3061
  • Add observeChecked methods to observe methods that can throw exceptions #3052
  • Merge micrometer-binder changes and revert micrometer-api changes #3046
  • Add observe method to the Observation for Runnable and Supplier #3040
  • Observation text publisher #3034
  • Iterable<Tag> vs Iterable<? extends Tag> #2092
  • Add base units for ForkJoinPool #1525
  • Convert a BiPredicate for ObservationConfig to a dedicated interface #3003
  • New Observation concept; revert Timer.Sample changes #2992
  • Introduce HttpTagsProvider with default implementation #2945
  • Current sample and Scope API #2871
  • Timer handlers #2856
  • Add method to SimpleMeterRegistry for outputting all meters #2946

🐞 Bug Fixes

  • Fix failure message in ObservationContextAssert.hasSubsetOfKeys() #3495
  • Non-monotonic kafka metric reported as counter #3300
  • New Relic module fails on the module path #3412
  • 'java.lang.module.FindException: Unable to derive module descriptor' when using module path with micrometer-core 1.10.0-M5 #3398
  • New Relic module fails on the module path #3412
  • signalfx: add tests for emiting percentile and histograms, fix timer #3369
  • DocumentedObservation may always override contextual name to null #3307
  • Fix generic parameters for composite observations #3173
  • Service descriptor files not merged/transformed in statsd shadowJar #3268
  • Accidental strict dep on LatencyUtils #1599
  • Provider better APIs to move between Instrument Tags and Commons Tags #3102
  • Failed to record timer metrics in native image with percentiles configured #3002
  • Correct PostgreSQL metrics for dead tuples, with integration tests and refactoring #2474
  • Dependency cycle between micrometer-core and reactor-netty caused by ReactorNettySender #2802
  • Netty HTTP codec module included in statsd JAR #2929
  • LongTaskTimer always converts durations of measurements to nanos #2947

📔 Documentation

  • Automate non-Javadoc multi-line comments for license headers #2942
  • Switch license header to a multiline comment instead of JavaDoc #2412

🔨 Dependency Upgrades

  • Upgrade Spring Boot to 2.7.5 #3523
  • Upgrade Spring Cloud to 3.1.5 #3520
  • Upgrade Google Cloud Monitoring to 3.2.10 #3519
  • Upgrade Spring Boot to 2.6.13 #3522
  • Upgrade Mockito to 4.8.1 #3517
  • Upgrade SignalFx to 1.0.25 #3516
  • Upgrade AWS SDK V1 to 1.12.335 and V2 to 2.18.10 #3515
  • Upgrade Reactor to 3.4.24, Reactor-Netty to 1.0.24, and Netty to 4.1.82 #3514
  • Bump com.gradle.enterprise from 3.11.2 to 3.11.3 #3509
  • Bump com.gradle.enterprise from 3.11.1 to 3.11.2 #3491
  • Upgrade context-propagation to 1.0.0-RC1 for 1.10.0-RC1 #3477
  • Upgrade Spotless plugin to 6.11.0 #3475
  • Upgrade to me.champeau.mrjar 0.1.1 #3422
  • Upgrade Dropwizard Metrics to 4.2.12 #3474
  • Upgrade spectator (atlas) to 1.3.8 #3473
  • Upgrade Spring Boot to 2.7.4 #3472
  • Upgrade Spring Boot to 2.6.12 #3471
  • Upgrade testcontainers to 1.17.5 #3470
  • Upgrade junit 5.9.1, assertj to 3.23.1, mockito to 4.8.0, archunit to 1.0.0 #3469
  • Upgrade wavefront-sdk-java to 3.0.3 #3467
  • Upgrade signalfx-java to 1.0.24 #3466
  • Upgrade AWS SDK to 1.12.318 and 2.17.289 #3465
  • Upgrade netty to 4.1.81 reactor-netty to 1.0.23 and reactor to 3.4.23 #3464
  • Upgrade gradle-download-task plugin to 5.2.1 #3463
  • Upgrade nebula-release-plugin to 16.1.0 #3462
  • Upgrade Spring Java Format dependencies to 0.0.35 #3459
  • Properly pin gradle-info-plugin to 11.4.1 #3441
  • Upgrade to Spotless Gradle Plugin 6.10.0 #3397
  • Use 5.9.+ for JUnit BOM #3356
  • Upgrade to context-propagation 1.0.0-M3 #3278
  • Upgrade to Kotlin 1.7.10 #3276
  • Use latest.release for io.opentelemetry.proto:opentelemetry-proto #3259
  • Update samples to use Spring Boot 2.7.0 #3205
  • Update lock files for 1.10.0-M2 #3169
  • Upgrade to Elasticsearch 8.1.3 and 7.17.3 for integration tests #3142
  • Upgrade Spectator to 1.3.2 #3168
  • Upgrade to Mockito 4.5.1 #3167
  • Upgrade to AWS SDK v1 1.12.217 and v2 2.17.188 #3166
  • Upgrade to Reactor 3.4.18, Reactor-Netty 1.0.19, Netty 4.1.77.Final #3165
  • Upgrade to JMH 1.35 #3164
  • Upgrade to Testcontainers 1.17.1 #3163
  • Upgrade to Wiremock 2.33.2 #3162
  • Upgrade to SignalFx 1.0.18 #3161
  • Bump context propagation to 1.0.0-M2 #3133
  • Pin to context-propagation-api 1.0.0-M1 #3072
  • Upgrade Mockito to 4.3.1 #3029
  • Upgrade AWS SDK v1 to 1.12.158 and v2 to 2.17.129 #3028
  • Upgrade Netty to 4.1.74.Final #3026
  • Upgrade Javaformat to 0.0.31 #3025
  • Upgrade JUnit to 5.8.2 and Testcontainers to 1.16.3 #3024
  • Upgrade Dropwizard Metrics to 4.1.30 #3023
  • Upgrade Slf4J to 1.7.36 #3022
  • Upgrade to Gradle Wrapper 7.4 #3001
  • Upgrade build jdk to 17.0.2, 8.0.322 #2988
  • Pin Dropwizard 4.+ instead of 4.0.+ #2905
  • Upgrade Spring Boot to 2.6.2 (samples) #2968
  • Upgrade JMH to 1.34 #2967
  • Upgrade Mockito to 4.2.0 #2966
  • Upgrade AWS SDK v1 to 1.12.136 and AWS SDK v2 to 2.17.107 #2964
  • Upgrade Spectator to 1.0.14 #2963
  • Upgrade to reactor 3.4.13, reactor-netty 1.0.14, netty 4.1.72.Final #2923
  • Upgrade JUnit platform to 1.7.2 and vintage-engine to 5.7.2 #2962
  • Upgrade awaitility to 4.1.1 #2961
  • Upgrade Testcontainers to 1.16.2 #2960
  • Upgrade ArchUnit to 0.22.0 #2959
  • Upgrade spring-javaformat to 0.0.29 #2958
  • Upgrade Spring Boot to 2.4.13 (samples) #2957
  • Upgrade AssertJ to 3.22.0 #2956
  • Upgrade SignalFx to 1.0.14 #2955
  • Upgrade Dropwizard Metrics to 4.1.29 #2954
  • Upgrade to Azure ApplicationInsights 2.6.4 #2953
  • Upgrade Logback to 1.2.10 #2952
  • Upgrade to Log4j 2 2.17.1 #2937
  • Upgrade Log4J to 2.17.0 #2927
  • Upgrade Logback to 1.2.9 #2926
  • Upgrade Logback to 1.2.8 #2922
  • Upgrade to log4j 2.16.0 #2918
  • Upgrade to log4j 2.15.0 #2910

📝 Tasks

  • Verify sender propagation for HTTP server instrumentation #3507
  • Update CircleCI OpenJDK images to 8.0.345 and 11.0.16 respectively #3501
  • Redact Dynatrace token in error logs #3484
  • Disable downloadBaseline task for micrometer-jetty11 #3481
  • Generate dependency lock files for 1.10.0-RC1 #3476
  • Bump to a medium+ resource class for CI builds #3455
  • Exclude buildscript-gradle.lockfile in deleteLockFiles task #3445
  • Update samples to use Spring Boot 2.7.4 #3434
  • Rename DocumentedObservation to ObservationDocumentation #3430
  • Test SLFJ4 2.0 compatibility #3415
  • Update OtlpMeterRegistryTest to run builds on Java 19 #3431
  • Pin wiremock-jre8-standalone to 2.33.+ for 1.8.x and 1.9.x #3468
  • Reduce flakiness of StatsdMeterRegistryPublishTest #3447
  • Update TagsTest to run builds on Java 19 #3437
  • Upgrade to JApicmp Gradle Plugin 0.4.1 #3435
  • Support message supplier in WarnThenDebugLogger #3424
  • Ignore METHOD_NEW_DEFAULT binary compatibility #3181
  • Pin Jersey dependencies to 3.0.+ in its sample #3136
  • Polish OTLP registry changes #3153
  • Typo in OtlpLongTaskTImer #3147
  • Remove deprecated GangliaConfig protocolVersion and rateUnits #3018
  • Remove deprecated ElasticConfig#documentType #3017
  • Remove deprecated constructor and dropwizard dependency in Ganglia registry #3016
  • Remove deprecated method newLongTaskTimer(Id) on MeterRegistry #3015
  • Remove deprecated KafkaConsumerMetrics #3013
  • Remove deprecated JettyStatisticsMetrics #3012
  • Remove deprecated HibernateMetrics and HibernateQueryMetrics #3011
  • Remove deprecated DiskSpaceMetrics #3010
  • Replace deprecated AbstractLifeCycleListener usage in Jetty tests #3014
  • Upgrade Elasticsearch Docker image to 7.16.3 in integration tests #2986
  • Use Testcontainers for MongoDB integration tests #2984
  • Pin spectator-api to 1.0.+ for Micrometer 1.8.x #3027
  • Store the Meter.Id instead of the Meter in KafkaMetrics #2991
  • Bump up Gradle plugin dependencies #2979
  • Use branch name in dependencies cache key for CircleCI #2975
  • Upgrade to Gradle Shadow plugin 7.1.2 #2973
  • Upgrade to Gradle Enterprise Gradle plugin 3.8 #2949
  • Backport test improvements from 2.0.x to 1.7.x #2943
  • Use daemon thread in CommonsObjectPool2Metrics #2938
  • Suppress "warning: no comment" in javadoc task #2935
  • Disable javadoc task for sample projects #2934
  • Upgrade to Gradle Wrapper 7.3.3 #2931
  • Upgrade to Gradle Wrapper 7.3.2 #2921
  • Upgrade build images to JDK 8.0.312 and 11.0.13 #2919
  • Upgrade build machine image to ubuntu-2004:202111-01 #2913
  • Upgrade build images to JDK 17.0.1, 11.0.12, 8.0.302 #2912
  • Use Javadoc code instead of Markdown backticks #2907

❤️ Contributors

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

@pirgeo, @arminru, @izeye, @philwebb, @kilink, @bogdandrutu, @bclozel, @simonbasle, @marschall, @violetagg, @sshplendid, @jprinet, @easimonand, and @ttddyy

Don't miss a new micrometer release

NewReleases is sending notifications on new releases.