From e02eba2a33baca391743cf2777d996d5546de64d Mon Sep 17 00:00:00 2001 From: Jon Schneider Date: Thu, 8 Feb 2018 13:23:14 -0600 Subject: [PATCH] Add publishUnchangedMeters StatsD support Add configuration property to support publishing unchanged pollable meters. See gh-11967 --- .../metrics/export/statsd/StatsdProperties.java | 15 ++++++++++++++- .../statsd/StatsdPropertiesConfigAdapter.java | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdProperties.java index b0e1203c03..89b6d0294b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdProperties.java @@ -59,7 +59,8 @@ public class StatsdProperties { /** * How often gauges will be polled. When a gauge is polled, its value is recalculated - * and if the value has changed, it is sent to the StatsD server. + * and if the value has changed (or publishUnchangedMeters is true), + * it is sent to the StatsD server. */ private Duration pollingFrequency = Duration.ofSeconds(10); @@ -68,6 +69,11 @@ public class StatsdProperties { */ private Integer queueSize = Integer.MAX_VALUE; + /** + * Send unchanged meters to the StatsD server. + */ + private Boolean publishUnchangedMeters = true; + public Boolean getEnabled() { return this.enabled; } @@ -124,4 +130,11 @@ public class StatsdProperties { this.queueSize = queueSize; } + public Boolean getPublishUnchangedMeters() { + return this.publishUnchangedMeters; + } + + public void setPublishUnchangedMeters(Boolean publishUnchangedMeters) { + this.publishUnchangedMeters = publishUnchangedMeters; + } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdPropertiesConfigAdapter.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdPropertiesConfigAdapter.java index cc90e3ac4b..89e0b2de2a 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdPropertiesConfigAdapter.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/statsd/StatsdPropertiesConfigAdapter.java @@ -78,4 +78,8 @@ public class StatsdPropertiesConfigAdapter return get(StatsdProperties::getQueueSize, StatsdConfig.super::queueSize); } + @Override + public boolean publishUnchangedMeters() { + return get(StatsdProperties::getPublishUnchangedMeters, StatsdConfig.super::publishUnchangedMeters); + } }