Skip to content

Releases: micrometer-metrics/micrometer

v1.1.5

17 Jun 09:52
Compare
Choose a tag to compare

Notable changes

#1421 If using the ElasticMeterRegistry, any existing metrics_template template needs to be deleted when upgrading so it can be recreated with the fix included in that change.


See the 1.1.5 milestone for full details on what was included in this release. All changes from the 1.0.11 release were also included in 1.1.5.

v1.0.11

17 Jun 09:01
Compare
Choose a tag to compare

NOTE: This is the last planned patch release of the 1.0.x version line. Please upgrade to a supported release line to get future patches.


See the 1.0.11 milestone for details on changes included in this release.

v1.1.4

03 Apr 07:29
Compare
Choose a tag to compare

See the 1.1.4 milestone for included changes. 1.0.10 changes are also included in this release.

Notable changes

Default PauseDetector

The default PauseDetector has been changed to NoPauseDetector from ClockDriftPauseDetector (see #1324). To restore the prior behavior, configure a ClockDriftPauseDetector on your MeterRegistry like:

registry.config().pauseDetector(new ClockDriftPauseDetector(Duration.ofMillis(100), Duration.ofMillis(100));

Fail fast on missing required configuration

MissingRequiredConfigurationException will be thrown when instantiating MeterRegistry implementations if required configuration values are not available from the given *Config class used.

Fixes

Enhancements

v1.0.10

26 Mar 15:49
Compare
Choose a tag to compare

See the 1.0.10 milestone for included items.

Notable changes

Default PauseDetector

The default PauseDetector has been changed to NoPauseDetector from ClockDriftPauseDetector (see #1324). To restore the prior behavior, configure a ClockDriftPauseDetector on your MeterRegistry like:

registry.config().pauseDetector(new ClockDriftPauseDetector(Duration.ofMillis(100), Duration.ofMillis(100));

Fixes

  • Tomcat ThreadPool metrics reporting NaN values
  • Handle NaN and infinity for New Relic Insights
  • Replace invalid characters in events for New Relic naming convention
  • Respect mode for FunctionTimer/FunctionCounter in SimpleMeterRegistry
  • Respect time unit parameter in FunctionTimer.totalTime()
  • Handle null MemoryUsage in JvmMemoryMetrics
  • InfluxMeterRegistry sends tags with empty values which influx then rejects
  • Use nanoseconds for Dropwizard timer snapshot mean
  • Start line sink only when enabled in StatsD meter registry
  • Use noop processor when publishing is disabled in StatsD meter registry
  • Get Timed annotation from proxy target when failed
  • Handle missing exceptions in WebMvcMetricsFilter
  • Custom meters' fields are written incorrectly with InfluxMeterRegistry

Enhancements

  • Add Infinity Buckets to the StatsD MeterRegistry for Meters with an SLA
  • Use MissingRequiredConfigurationException consistently
  • Datadog: log when applicationKey is not configured
  • Use system-dependent line separator for logs
  • Various documentation improvements
  • Various test code polish

v1.1.3

19 Feb 12:44
Compare
Choose a tag to compare

See the 1.1.3 milestone for included items.

Fixes

Includes 1.0.10 fixes up to the point of 1.1.3 release (see diff).

  • Wait to publish metrics to Cloudwatch even if application is shutting down
  • Handle NaN in various registries
    • LoggingMeterRegistry
    • HumioMeterRegistry
  • KafkaConsumerMetrics' "records-lead" metric should not be a TimeGauge
  • KafkaConsumerMetrics properly tagged per topic and partition
  • StackdriverMeterRegistry handles publishing empty histograms

Micrometer Spring Legacy fixes

  • Avoid creating meter binders before registry has been customized

Polish

  • Avoid MediaType.get calls in OkHttpSender where possible
  • JavaDoc polish for Elasticsearch support
  • JavaDoc for RestTemplateExchangeTags.outcome
  • Avoid potentially expensive calls when debug logging is not enabled
  • Align some test class names with class under test
  • Unify access modifiers on across some classes
  • Fix setup for some test classes
  • Properly set interrupted status for CloudWatchMeterRegistry publish thread

v1.1.2

24 Jan 10:53
Compare
Choose a tag to compare

See the 1.1.2 milestone for included items.

Enhancements

  • Add outcome tag to default rest template tags provider in spring legacy
  • Reading kafka records-lag metrics with topic and partition name
  • cloudwatch: log interruptions as a warn

Fixes

  • Includes all 1.0.9 fixes.
  • Split Dynatrace messages if they are too large
  • Fix handling of infinity and NaN values for some registries
  • Address potential NPE in TomcatMetricsBinder when Context is null
  • Make checkedForIndexTemplate volatile in ElasticMeterRegistry
  • HibernateMetrics fails if Hibernate is not on the classpath
  • Exclude libnetty_transport_native_epoll_x86_64.so to prevent PortUnreachableException: recvfrom() failed on Linux
  • Consider property LoggingRegistryConfig.logInactive() when logging

v1.0.9

12 Jan 05:07
Compare
Choose a tag to compare

Fixes

  • Add access token validation to SignalFxPropertiesConfigAdapter
  • Fix description and base unit for executor.queued meter

v1.1.1

12 Dec 15:51
Compare
Choose a tag to compare

Enhancements

  • Auto-configure Kafka consumer metrics in micrometer-spring-legacy.
  • Remove unused Measurement interface in AppOptics.
  • Monitor additivity-disabled loggers for Log4j2.

Fixes

  • Includes all 1.0.8 fixes.
  • Removed meters are removed from Prometheus registry.
  • Remove metrics from Dropwizard MetricRegistry when removing a meter.
  • Remove HttpSender.print() usages.
  • Fix Kafka consumer metrics.
  • micrometer-registry-statsd does not pollute classpath with /META-INF/native/libnetty_transport_native_epoll_x86_64.so from Netty 4.1.29.
  • Stop configuring metrics if Hibernate is not available.
  • Fixed StatsD Nagle buffering algorithm.
  • Fix a wrong index when copying an array in Tags.and(Tag...)
  • Jersey server configuration alignment.
  • Remove logging from JvmGcMetrics.
  • PostgreSQLDatabaseMetrics#runQuery advances JDBC cursor to next row.
  • Tag deduplication now does not add extra duplicate tag.
  • Handle null suffix in CloudWatchMeterRegistry.Batch.metricDatum().

v1.0.8

12 Dec 15:44
Compare
Choose a tag to compare

Fixes

  • TimedAspect does not disrupt the application flow when there is an exception recording a metric.
  • micrometer-spring-legacy now respects Actuator endpoint settings.
  • Removed extraneous print statements in StatsD registry.
  • Exception thrown by MicrometerCollector for a meter with a duplicate name now includes the name in its message.
  • Fixed accept/deny filter precedence.
  • Add endpoint-enabled condition to Prometheus Actuator endpoint.
  • Improved Telegraf sanitization.
  • Use Commons Logging for WebMvcMetricsFilter.
  • WavefrontPropertiesConfigAdapter now extends StepRegistryPropertiesConfigAdapter.
  • Fix spring.aop.auto property reference.

v1.1.0

29 Oct 22:30
Compare
Choose a tag to compare

Enhancements

New registries

  • Added new registry implementations for monitoring systems:
    • AppOptics
    • Azure Monitor
    • Dynatrace
    • Elastic
    • Humio
    • KairosDB
    • Stackdriver
    • Sysdig StatsD
  • Added a LoggingMeterRegistry that formats metrics as logs periodically.

New meter binders

  • Jetty server thread pool metrics.
  • Thread state metrics to JvmThreadMetrics.
  • PostgreSQL metrics.
  • Disk space metrics.
  • Log4J 1.2 metrics.
  • Kafka consumer metrics.
  • Enhance ExecutorServiceMetrics to record time between task submission and task execution start time.
  • Hystrix metrics reworked from the ground up.

Spring Boot 1.5.x legacy module improvements

  • Support management.metrics.tags.* in Spring Boot 1.5.x.
  • Support distribution's min/max expected values via properties in Spring Boot 1.5.x.
  • Autoconfigure Hibernate metrics.

Other improvements

  • Added support for buffering StatsD metrics using Nagle's algorithm.
  • Add support for MultiGauge, a helper to spawn a series of gauges from a table-like structure that share a name but vary in tags. MultiGauge allows the set of gauges to grow and shrink over time, provided the total set of tags is well-bounded over time.
  • Add support for Meter removal (MeterRegistry#remove(Meter.Id) and MeterRegistry#remove(Meter)) and a new MeterRegistry#config().onMeterRemoved(Consumer) method.
  • Meter registration memory and CPU performance improvements.
  • Support for strong reference gauges.
  • Support for defining gauges from Supplier<T>.
  • Add "outcome" tag to WebMVC and Jersey metrics that summarizes the HTTP status as informational, success, redirection, client error, server error, or unknown.
  • Reduce default push-based registry logging level to DEBUG and add a single INFO-level log message that indicates the push frequency on startup.
  • Upgrade to Dropwizard 4.x for Graphite/JMX.
  • Eliminate Dropwizard dependency for Ganglia, instead publishing directly through the Ganglia Java client.
  • Add a new overload Timer#start() that uses the default system clock.
  • Allow for injection of HTTP interface into push-based registries (e.g. DatadogMeterRegistry.builder(..).httpClient(CUSTOM_HTTP_CLIENT).build().
  • Drop Autocloseable from Meter and MeterRegistry to improve static code analysis experience (e.g. Sonar).
  • Added structural pattern matching for meters (Meter#match(..) and Meter#use(..))
  • Make HierarchicalNameMapper injectable for GraphiteMeterRegistry.
  • Add exception handling for TimedAspect.
  • Add base units to several binders. (Breaking change for Prometheus. See #1063)

Fixes

  • Properly handle infinity values in gauges.
  • Remove invalid DEFAULT from some MeterRegistryConfig subclasses (when a default isn't possible because there is a required property).
  • Always convert Strings to byte array using UTF-8.