Skip to content

Releases: micrometer-metrics/micrometer

v1.0.2

13 Mar 17:13
Compare
Choose a tag to compare

Improvements

  • Publish one last time on close for push-based systems.

Fixes

  • Improve performance of TimeDecayingMax.rotate() for infrequently used timer dimensions.
  • Make DoubleFormat independent of default locale.

v1.0.1

27 Feb 23:15
Compare
Choose a tag to compare

New Features/Improvements

  • Group complex meter types under one event in New Relic.
  • Can now set a custom sink for StatsD lines, allowing you to direct StatsD output to something other than UDP (e.g. messaging middleware).
  • Influx registry logging level consistency and property deserialization improvements.
  • Mark urlTemplate as nullable for RestTemplateExchangeTagsProvider

Fixes

  • Encode metric name which is being used in URL for Datadog.
  • Add slf4j-api dependency to registry implementations that depend on it.
  • Change default Wavefront proxy port.
  • Graphite FunctionTimers no longer return NaN. NaN gauges are not shipped to Graphite.
  • StatsD metrics can now originate from multiple producers without conflict.

v1.0.0

20 Feb 21:42
Compare
Choose a tag to compare
Fix all Javadoc warnings, fix SignalFx tag key naming convention

v1.0.0-rc.6

10 Jan 16:02
Compare
Choose a tag to compare
v1.0.0-rc.6 Pre-release
Pre-release

New Features/Improvements

  • Support for publishing to New Relic Insights API
  • Align property name prefixes in micrometer-spring-legacy with names in Spring Boot 2 M7
  • Pause detector is now configurable:
    • Can be swapped for a noop detector
    • The accuracy of the default clock-drift based detector can be configured to tradeoff CPU consumption for accuracy
  • Timer/DistributionSummary max implementations have moved to a ring-buffer based approach to better line up with other summary stats in time
  • Publish meter type metadata to Datadog
  • Add Tomcat metrics
  • Step registries now use a step-based function counter and function timer
  • Improve configuration defaults for CloudWatch
  • Improved counter naming for allocated and promoted bytes between GCs
  • Add Tags#of shortcut for creating a single tag list of tags.
  • Allow subclasses of PropertyMeterFilter to leverage the getMostSpecific method for looking up additional properties
  • FunctionCounter and FunctionTimer are now pollable in the StatsD implementation
  • Dropwizard improvements:
    • Map Micromter's Clock to Dropwizard's Clock type so the underlying Dropwizard meters obey Micrometer's notion of time
    • FunctionCounter can be made to report exponential moving averages like regular counters
    • FunctionTimer can be made to report exponential moving averages like regular timers
  • CaffeineCacheMetrics constructor is now consistent with other OOTB binders

Fixes

  • JMX exporter reports correct values for histogram percentile MBeans
  • Fix formatting of Datadog percentile time series metric names
  • Format metrics correctly independent of system locale
  • Fix race condition in CompositeMeterRegistry#add
  • MetricsFilter servlet filter now correctly tags HTTP 500 responses
  • Fix conditional application of TomcatMetricsConfiguration
  • Fix max in CumulativeTimer#measure
  • Prometheus percentiles histogram never resets (is cumulative)
  • Fix ClassCastException in CompositeMeterRegistry#add
  • When a controller has async operation, the operation is now correctly timed once

v1.0.0-rc.5

10 Jan 15:32
Compare
Choose a tag to compare
v1.0.0-rc.5 Pre-release
Pre-release

New Features/Improvements

  • Expose Hystrix metrics on time taken by http requests
  • Add autoconfiguration for Hystrix metrics
  • Add @Order to StringToDurationConverter so it doesn't conflict with custom converters
  • Add preliminary AWS CloudWatch support
  • Reduce thread contention on the map holding Meters inside a registry

Fixes

  • Remove Guava's AtomicDouble from CumulativeCounter
  • Improve conditional guard on WebMvcMetricsConfiguration
  • DistributionSummary/Timer now exports valid Prometheus buckets
  • Fixed naming convention for FunctionCounters exported to Prometheus

(Included in Spring Boot 2 M7)

v1.0.0-rc.4

17 Nov 04:18
Compare
Choose a tag to compare
v1.0.0-rc.4 Pre-release
Pre-release

New Features

  • Property-based meter filters!
  • SimpleMeterRegistry can now be configured to accumulate values or use a step-interval
  • OkHttp instrumentation.
  • Now validating user-provided HistogramConfigs
  • Improved internal data structure of composite meters for better performance
  • Improved histogram implementations allow for the retrieval of multiple percentiles/buckets in one call for better performance.
  • Conditionally disable RestTemplate customizer to allow micrometer-spring-legacy to be used for older versions of Spring Boot (pre 1.5.x)
  • Binders in MeterBindersConfiguration can now be disabled via properties
  • ThreadPoolTaskExecutor metrics binder
  • Jetty statistics binder
  • Hibernate binder

Fixes

  • WebMvcTags - Strip trailing URI slashes to limit dimensional explosion
  • MetricsFilter now forwards to other filters when a matchable handler mapping cannot be found
  • CumulativeDistributionSummary - prevent losing the maximum in case of data-race
  • CumulativeTimer - prevent losing the maximum in case of data-race
  • StatsD registry now accepts custom naming conventions
  • Fix thread safety issues in MeterRegistry
  • Add base unit to buffer pool metrics

v1.0.0-rc.3

17 Nov 03:06
Compare
Choose a tag to compare
v1.0.0-rc.3 Pre-release
Pre-release

New features

  • Meter filters - allow for ignoring tags, adding common tags, ignoring whole metrics, etc at a registry level
  • Replaced histogram and quantiles implementations with HdrHistogram
  • Servlet metrics are recorded with a servlet Filter instead of HandlerInterceptor (metrics are now recorded for resources blocked by spring-security)
  • HierarchicalNameMapper is now customizable for Etsy-flavored StatsD
  • DatadogMeterRegistry matches the naming convention of dogstatsd
  • Fluent builders for FunctionCounter and FunctionTimer
  • Support collecting max for Prometheus timers
  • Add processor metrics binder to the list of default binders autoconfigured by Spring
  • Create DEFAULT for each registry implementation's config interface
  • Add host property to datadog config so that traffic can pass through a proxy
  • Meta-annotation support for @timed
  • Add record method that accepts Duration to Timer

Fixes

  • Servlet request metrics report the targetted URI in the event of an error rather than /error
  • Adjust metric name for "system load average"
  • Logback - MetricsTurboFilter no longer increments stats when is<LEVEL>Enabled() is called.
  • Properly synchronize metrics creation (the symptom previously was duplicate lines in Prometheus output)
  • Fixed file descriptor metrics names to match Prometheus standard
  • Description is present for all meters registered to Prometheus
  • Rename autoconfigured clock beans in Spring to avoid naming collisions
  • Ensure MeterRegistryConfigurers are run before autoconfigured binders
  • Add StringToDurationConverter to Prometheus configuration
  • Fix erroneously set description set as baseunit for ThreadPoolExecutor

v1.0.0-rc.2

06 Oct 20:29
Compare
Choose a tag to compare
v1.0.0-rc.2 Pre-release
Pre-release
  • Added support for Statsd (Etsy, Datadog, and Telegraf flavors).
  • Added additional cache binders (Hazelcast, JCache, ConcurrentMapCache, Ehcache).
  • Add property to select Graphite pickle or plaintext protocol.
  • New technology compatibility kit to test custom registry implementations (extend MeterRegistryCompatibilityKit, found in micrometer-test).
  • Narrow the use of synchronization to make Micrometer suitable for use in reactive apps.
  • Add support for file descriptor metrics.
  • Add database table size binder.
  • New function-tracking timer to convert monotonically increasing counts/totalTimes from third-party APIs into a native timer form for various systems. Now you can do things like alert when your cache miss rate goes through the roof suddenly!
  • FIX Histogram.percentiles() and Histogram.percentilesTimer() now produce valid Prometheus series.
  • FIX Make WebMvcMetrics#tagWithException(ex) public again.
  • FIX Duplicate dimensions when common tags are present.

v1.0.0-rc.1

15 Sep 04:31
Compare
Choose a tag to compare
v1.0.0-rc.1 Pre-release
Pre-release
  • This is the version incorporated into Spring Boot 2.0 M4

  • Backported changes to types and packages that Spring Boot team made for Spring Boot 2 M4 to micrometer-spring-legacy.

  • Change Spring support to classpath + property-based enablement for individual registries.

  • Add property that controls whether Spring auto-times all request mappings.

  • Add UptimeMetrics.

  • Introduced percentile histograms with automatically selected buckets for aggregable percentile approximations.

  • Consistent naming on JVM metrics originating in binders.

  • Add area tag (heap,nonheap) to JVM memory pools.

  • New auto-completable @ConfigurationProperties for registry configs.

  • FIX - Convention names not applied to custom meters.

  • FIX - Data size metrics for Prometheus do not contain unit.

  • FIX - RestTemplate instrumentation doesn't capture URI when calling restTemplate with a URI object instead of a URL string.

  • FIX - Spring Boot application only reports metrics for 200 OK responses.

v0.10.0.RELEASE

18 Aug 22:44
Compare
Choose a tag to compare
v0.10.0.RELEASE Pre-release
Pre-release
  • Added CompositeMeterRegistry for shipping metrics to multiple systems.
  • Added Metrics, an all-static class for building meters against a global static composite registry. Using this is the new recommended approach for common libraries.
  • Added a NamingConvention interface, a config option to set a naming convention on a registry, and added default naming conventions for all supported monitoring systems.
  • Moved longTaskTimer behind MeterRegistry.more(), where more esoteric meter patterns will live as they are added.
  • New MeterRegistry.find(...) fluent builder for finding meters with a particular type, name, set of tags, value, etc.
  • HierarchicalNameMapper is now a functional interface.
  • Eliminated the old Meters.monitor(...) type builders, and put the monitor method on each binder (e.g. for Guava cache metrics, you now use GuavaCacheMetrics.monitor(...). This prevents runtime issues related to missing optional dependencies.
  • Added instrumentation for Caffeine caches.