Skip to content

v1.1.0

Compare
Choose a tag to compare
@jkschneider jkschneider released this 29 Oct 22:30

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.