From ff636b58e1e497abdcda41bcfb0553a7a2a14df2 Mon Sep 17 00:00:00 2001 From: Jon Schneider Date: Wed, 4 Oct 2017 22:20:30 -0500 Subject: [PATCH] Make the Graphite export protocol configurable Closes gh-10523 --- .../export/graphite/GraphiteProperties.java | 17 +++++++++++++++++ .../GraphitePropertiesConfigAdapter.java | 6 ++++++ 2 files changed, 23 insertions(+) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphiteProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphiteProperties.java index 06114a9b2f6..a5577904cf7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphiteProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphiteProperties.java @@ -19,6 +19,8 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.graphite; import java.time.Duration; import java.util.concurrent.TimeUnit; +import io.micrometer.graphite.GraphiteProtocol; + import org.springframework.boot.context.properties.ConfigurationProperties; /** @@ -29,6 +31,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; */ @ConfigurationProperties(prefix = "spring.metrics.graphite") public class GraphiteProperties { + /** * Enable publishing to the backend. */ @@ -59,6 +62,11 @@ public class GraphiteProperties { */ private Integer port; + /** + * Protocol to use while shipping data to Graphite. + */ + private GraphiteProtocol protocol = GraphiteProtocol.Pickled; + public Boolean getEnabled() { return this.enabled; } @@ -106,4 +114,13 @@ public class GraphiteProperties { public void setPort(Integer port) { this.port = port; } + + public GraphiteProtocol getProtocol() { + return this.protocol; + } + + public void setProtocol(GraphiteProtocol protocol) { + this.protocol = protocol; + } + } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphitePropertiesConfigAdapter.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphitePropertiesConfigAdapter.java index 61365e04668..d1e4fac0457 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphitePropertiesConfigAdapter.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/graphite/GraphitePropertiesConfigAdapter.java @@ -20,6 +20,7 @@ import java.time.Duration; import java.util.concurrent.TimeUnit; import io.micrometer.graphite.GraphiteConfig; +import io.micrometer.graphite.GraphiteProtocol; import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesConfigAdapter; @@ -74,4 +75,9 @@ class GraphitePropertiesConfigAdapter return get(GraphiteProperties::getPort, GraphiteConfig::port); } + @Override + public GraphiteProtocol protocol() { + return get(GraphiteProperties::getProtocol, GraphiteConfig::protocol); + } + }