From 9d40e881ec82d4008ddac38e341d8d2fb11ccb9c Mon Sep 17 00:00:00 2001 From: Glenn Oppegard Date: Fri, 21 Oct 2022 13:43:45 -0600 Subject: [PATCH 1/5] Add cluster and shard to WavefrontProperties - Also fix use of application and service tags to reflect their meaning in Wavefront --- .../WavefrontTracingAutoConfiguration.java | 22 ++++++++---- .../wavefront/WavefrontProperties.java | 36 +++++++++++++++++-- ...avefrontTracingAutoConfigurationTests.java | 27 +++++++++++--- 3 files changed, 73 insertions(+), 12 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java index 4b86760af224..39f9955a4a51 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java @@ -49,6 +49,7 @@ * {@link EnableAutoConfiguration Auto-configuration} for Wavefront tracing. * * @author Moritz Halbritter + * @author Glenn Oppegard * @since 3.0.0 */ @AutoConfiguration(after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class }) @@ -58,20 +59,29 @@ @ConditionalOnEnabledTracing public class WavefrontTracingAutoConfiguration { + private static final String DEFAULT_APPLICATION_NAME = "unnamed_application"; + /** - * Default value for application name if {@code spring.application.name} is not set. + * Default value for service name if {@code spring.application.name} is not set. */ - private static final String DEFAULT_APPLICATION_NAME = "application"; + private static final String DEFAULT_SERVICE_NAME = "unnamed_service"; @Bean @ConditionalOnMissingBean public ApplicationTags applicationTags(Environment environment, WavefrontProperties properties) { - String springApplicationName = environment.getProperty("spring.application.name", DEFAULT_APPLICATION_NAME); + String fallbackServiceName = environment.getProperty("spring.application.name", DEFAULT_SERVICE_NAME); Tracing tracing = properties.getTracing(); + String serviceName = (tracing.getServiceName() != null) ? tracing.getServiceName() : fallbackServiceName; String applicationName = (tracing.getApplicationName() != null) ? tracing.getApplicationName() - : springApplicationName; - String serviceName = (tracing.getServiceName() != null) ? tracing.getServiceName() : springApplicationName; - return new ApplicationTags.Builder(applicationName, serviceName).build(); + : DEFAULT_APPLICATION_NAME; + ApplicationTags.Builder builder = new ApplicationTags.Builder(applicationName, serviceName); + if (tracing.getClusterName() != null) { + builder.cluster(tracing.getClusterName()); + } + if (tracing.getShardName() != null) { + builder.shard(tracing.getShardName()); + } + return builder.build(); } @Configuration(proxyBeanMethods = false) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java index 37a963d62466..17ad25527bfc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java @@ -21,6 +21,8 @@ import java.net.UnknownHostException; import java.time.Duration; +import com.wavefront.sdk.common.application.ApplicationTags; + import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.PushRegistryProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.source.InvalidConfigurationPropertyValueException; @@ -30,6 +32,7 @@ * Configuration properties to configure Wavefront. * * @author Moritz Halbritter + * @author Glenn Oppegard * @since 3.0.0 */ @ConfigurationProperties(prefix = "management.wavefront") @@ -261,15 +264,28 @@ public void setBatchSize(Integer batchSize) { public static class Tracing { /** - * Application name. Defaults to 'spring.application.name'. + * Application name used in {@link ApplicationTags}. Defaults to + * 'unnamed_application'. */ private String applicationName; /** - * Service name. Defaults to 'spring.application.name'. + * Service name used in {@link ApplicationTags}, falling back to + * {@code spring.application.name}. If both are unset it defaults to + * 'unnamed_service'. */ private String serviceName; + /** + * Optional cluster name used in {@link ApplicationTags}. + */ + private String clusterName; + + /** + * Optional shard name used in {@link ApplicationTags}. + */ + private String shardName; + public String getServiceName() { return this.serviceName; } @@ -286,6 +302,22 @@ public void setApplicationName(String applicationName) { this.applicationName = applicationName; } + public String getClusterName() { + return this.clusterName; + } + + public void setClusterName(String clusterName) { + this.clusterName = clusterName; + } + + public String getShardName() { + return this.shardName; + } + + public void setShardName(String shardName) { + this.shardName = shardName; + } + } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfigurationTests.java index 2999861b24bd..c4926b7e955b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfigurationTests.java @@ -39,6 +39,7 @@ * Tests for {@link WavefrontTracingAutoConfiguration}. * * @author Moritz Halbritter + * @author Glenn Oppegard */ class WavefrontTracingAutoConfigurationTests { @@ -114,22 +115,40 @@ void shouldNotSupplyWavefrontOtelSpanExporterIfOtelIsMissing() { } @Test - void shouldHaveADefaultApplicationName() { + void shouldHaveADefaultApplicationNameAndServiceName() { this.contextRunner.withUserConfiguration(WavefrontSenderConfiguration.class).run((context) -> { ApplicationTags applicationTags = context.getBean(ApplicationTags.class); - assertThat(applicationTags.getApplication()).isEqualTo("application"); + assertThat(applicationTags.getApplication()).isEqualTo("unnamed_application"); + assertThat(applicationTags.getService()).isEqualTo("unnamed_service"); + assertThat(applicationTags.getCluster()).isNull(); + assertThat(applicationTags.getShard()).isNull(); }); } + @Test + void shouldUseSpringApplicationNameForServiceName() { + this.contextRunner.withUserConfiguration(WavefrontSenderConfiguration.class) + .withPropertyValues("spring.application.name=super-service").run((context) -> { + ApplicationTags applicationTags = context.getBean(ApplicationTags.class); + assertThat(applicationTags.getApplication()).isEqualTo("unnamed_application"); + assertThat(applicationTags.getService()).isEqualTo("super-service"); + }); + } + @Test void shouldHonorConfigProperties() { this.contextRunner.withUserConfiguration(WavefrontSenderConfiguration.class) - .withPropertyValues("spring.application.name=super-application", - "management.wavefront.tracing.service-name=super-service") + .withPropertyValues("spring.application.name=ignored", + "management.wavefront.tracing.application-name=super-application", + "management.wavefront.tracing.service-name=super-service", + "management.wavefront.tracing.cluster-name=super-cluster", + "management.wavefront.tracing.shard-name=super-shard") .run((context) -> { ApplicationTags applicationTags = context.getBean(ApplicationTags.class); assertThat(applicationTags.getApplication()).isEqualTo("super-application"); assertThat(applicationTags.getService()).isEqualTo("super-service"); + assertThat(applicationTags.getCluster()).isEqualTo("super-cluster"); + assertThat(applicationTags.getShard()).isEqualTo("super-shard"); }); } From 21da9ee4cf6c84bf121f6012ab062e11e698786f Mon Sep 17 00:00:00 2001 From: Glenn Oppegard Date: Fri, 21 Oct 2022 13:45:29 -0600 Subject: [PATCH 2/5] Export Application Tags in WavefrontMeterRegistry --- ...vefrontMetricsExportAutoConfiguration.java | 20 ++++++++++++++++ ...ntMetricsExportAutoConfigurationTests.java | 24 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java index 470d4f919aa1..7ea9678cbff6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java @@ -16,12 +16,18 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront; +import java.util.Map; + import com.wavefront.sdk.common.WavefrontSender; +import com.wavefront.sdk.common.application.ApplicationTags; import io.micrometer.core.instrument.Clock; +import io.micrometer.core.instrument.Tag; +import io.micrometer.core.instrument.Tags; import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontMeterRegistry; import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.ConditionalOnEnabledMetricsExport; import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; @@ -42,6 +48,7 @@ * @author Jon Schneider * @author Artsiom Yudovin * @author Stephane Nicoll + * @author Glenn Oppegard * @since 2.0.0 */ @AutoConfiguration( @@ -68,4 +75,17 @@ public WavefrontMeterRegistry wavefrontMeterRegistry(WavefrontConfig wavefrontCo return WavefrontMeterRegistry.builder(wavefrontConfig).clock(clock).wavefrontSender(wavefrontSender).build(); } + @Bean + @ConditionalOnBean(ApplicationTags.class) + @ConditionalOnClass(MeterRegistryCustomizer.class) + MeterRegistryCustomizer applicationTagsCustomizer(ApplicationTags applicationTags) { + Tags commonTags = Tags.of(applicationTags.toPointTags().entrySet().stream() + .map(WavefrontMetricsExportAutoConfiguration::asTag).toList()); + return (registry) -> registry.config().commonTags(commonTags); + } + + private static Tag asTag(Map.Entry entry) { + return Tag.of(entry.getKey(), entry.getValue()); + } + } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java index d8901202f041..cab7731afd87 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java @@ -16,12 +16,17 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront; +import java.util.Map; + import com.wavefront.sdk.common.WavefrontSender; +import com.wavefront.sdk.common.application.ApplicationTags; + import io.micrometer.core.instrument.Clock; import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontMeterRegistry; import org.junit.jupiter.api.Test; +import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; @@ -36,6 +41,7 @@ * * @author Jon Schneider * @author Stephane Nicoll + * @author Glenn Oppegard */ class WavefrontMetricsExportAutoConfigurationTests { @@ -81,6 +87,24 @@ void allowsRegistryToBeCustomized() { .hasSingleBean(WavefrontMeterRegistry.class).hasBean("customRegistry")); } + @Test + void exportsApplicationTagsInWavefrontRegistry() { + ApplicationTags.Builder appTagsBuilder = new ApplicationTags.Builder("super-application", "super-service"); + appTagsBuilder.cluster("super-cluster"); + appTagsBuilder.shard("super-shard"); + appTagsBuilder.customTags(Map.of("custom-key", "custom-val")); + + this.contextRunner.withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class)) + .withUserConfiguration(BaseConfiguration.class).withBean(ApplicationTags.class, appTagsBuilder::build) + .run((context) -> { + WavefrontMeterRegistry registry = context.getBean(WavefrontMeterRegistry.class); + registry.counter("my.counter", "env", "qa"); + assertThat(registry.find("my.counter").tags("env", "qa").tags("application", "super-application") + .tags("service", "super-service").tags("cluster", "super-cluster") + .tags("shard", "super-shard").tags("custom-key", "custom-val").counter()).isNotNull(); + }); + } + @Test void stopsMeterRegistryWhenContextIsClosed() { this.contextRunner.withUserConfiguration(BaseConfiguration.class) From 2646469aa86348c9009a413a9b3b3c952dd52db3 Mon Sep 17 00:00:00 2001 From: Glenn Oppegard Date: Fri, 21 Oct 2022 15:37:02 -0600 Subject: [PATCH 3/5] Fix checkstyle failure --- .../wavefront/WavefrontMetricsExportAutoConfigurationTests.java | 1 - 1 file changed, 1 deletion(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java index cab7731afd87..449266c3f2c2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java @@ -20,7 +20,6 @@ import com.wavefront.sdk.common.WavefrontSender; import com.wavefront.sdk.common.application.ApplicationTags; - import io.micrometer.core.instrument.Clock; import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontMeterRegistry; From 1f43002443bb8563b4c37a6c6d6a42dfae502ade Mon Sep 17 00:00:00 2001 From: Glenn Oppegard Date: Wed, 2 Nov 2022 11:09:23 -0600 Subject: [PATCH 4/5] Improve docs for Wavefront Application Tags --- ...vefrontMetricsExportAutoConfiguration.java | 1 - .../WavefrontTracingAutoConfiguration.java | 21 ++++++++++++------- .../wavefront/WavefrontProperties.java | 12 +++++++---- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java index 7ea9678cbff6..883a80044bfa 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java @@ -77,7 +77,6 @@ public WavefrontMeterRegistry wavefrontMeterRegistry(WavefrontConfig wavefrontCo @Bean @ConditionalOnBean(ApplicationTags.class) - @ConditionalOnClass(MeterRegistryCustomizer.class) MeterRegistryCustomizer applicationTagsCustomizer(ApplicationTags applicationTags) { Tags commonTags = Tags.of(applicationTags.toPointTags().entrySet().stream() .map(WavefrontMetricsExportAutoConfiguration::asTag).toList()); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java index 39f9955a4a51..f29bee15b9a3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java @@ -59,22 +59,27 @@ @ConditionalOnEnabledTracing public class WavefrontTracingAutoConfiguration { - private static final String DEFAULT_APPLICATION_NAME = "unnamed_application"; + /** + * Default value for the Wavefront Application name. + * @see Wavefront Application Tags + */ + private static final String DEFAULT_WAVEFRONT_APPLICATION_NAME = "unnamed_application"; /** - * Default value for service name if {@code spring.application.name} is not set. + * Default value for the Wavefront Service name if {@code spring.application.name} is not set. + * @see Wavefront Application Tags */ - private static final String DEFAULT_SERVICE_NAME = "unnamed_service"; + private static final String DEFAULT_WAVEFRONT_SERVICE_NAME = "unnamed_service"; @Bean @ConditionalOnMissingBean public ApplicationTags applicationTags(Environment environment, WavefrontProperties properties) { - String fallbackServiceName = environment.getProperty("spring.application.name", DEFAULT_SERVICE_NAME); + String fallbackWavefrontServiceName = environment.getProperty("spring.application.name", DEFAULT_WAVEFRONT_SERVICE_NAME); Tracing tracing = properties.getTracing(); - String serviceName = (tracing.getServiceName() != null) ? tracing.getServiceName() : fallbackServiceName; - String applicationName = (tracing.getApplicationName() != null) ? tracing.getApplicationName() - : DEFAULT_APPLICATION_NAME; - ApplicationTags.Builder builder = new ApplicationTags.Builder(applicationName, serviceName); + String wavefrontServiceName = (tracing.getServiceName() != null) ? tracing.getServiceName() : fallbackWavefrontServiceName; + String wavefrontApplicationName = (tracing.getApplicationName() != null) ? tracing.getApplicationName() + : DEFAULT_WAVEFRONT_APPLICATION_NAME; + ApplicationTags.Builder builder = new ApplicationTags.Builder(wavefrontApplicationName, wavefrontServiceName); if (tracing.getClusterName() != null) { builder.cluster(tracing.getClusterName()); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java index 17ad25527bfc..4c03b7828e61 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java @@ -264,25 +264,29 @@ public void setBatchSize(Integer batchSize) { public static class Tracing { /** - * Application name used in {@link ApplicationTags}. Defaults to + * Wavefront Application name used in {@link ApplicationTags}. Defaults to * 'unnamed_application'. + * @see Wavefront Application Tags */ private String applicationName; /** - * Service name used in {@link ApplicationTags}, falling back to + * Wavefront Service name used in {@link ApplicationTags}, falling back to * {@code spring.application.name}. If both are unset it defaults to * 'unnamed_service'. + * @see Wavefront Application Tags */ private String serviceName; /** - * Optional cluster name used in {@link ApplicationTags}. + * Optional Wavefront Cluster name used in {@link ApplicationTags}. + * @see Wavefront Application Tags */ private String clusterName; /** - * Optional shard name used in {@link ApplicationTags}. + * Optional Wavefront Shard name used in {@link ApplicationTags}. + * @see Wavefront Application Tags */ private String shardName; From abc952632af6d1d9eb080e655fbfe6f1f2ba80c2 Mon Sep 17 00:00:00 2001 From: Glenn Oppegard Date: Wed, 2 Nov 2022 11:46:33 -0600 Subject: [PATCH 5/5] Fix checkstyle errors --- .../WavefrontTracingAutoConfiguration.java | 17 ++++++++++++----- .../wavefront/WavefrontProperties.java | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java index f29bee15b9a3..8fad8a8fd7bd 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java @@ -61,22 +61,29 @@ public class WavefrontTracingAutoConfiguration { /** * Default value for the Wavefront Application name. - * @see Wavefront Application Tags + * @see Wavefront + * Application Tags */ private static final String DEFAULT_WAVEFRONT_APPLICATION_NAME = "unnamed_application"; /** - * Default value for the Wavefront Service name if {@code spring.application.name} is not set. - * @see Wavefront Application Tags + * Default value for the Wavefront Service name if {@code spring.application.name} is + * not set. + * @see Wavefront + * Application Tags */ private static final String DEFAULT_WAVEFRONT_SERVICE_NAME = "unnamed_service"; @Bean @ConditionalOnMissingBean public ApplicationTags applicationTags(Environment environment, WavefrontProperties properties) { - String fallbackWavefrontServiceName = environment.getProperty("spring.application.name", DEFAULT_WAVEFRONT_SERVICE_NAME); + String fallbackWavefrontServiceName = environment.getProperty("spring.application.name", + DEFAULT_WAVEFRONT_SERVICE_NAME); Tracing tracing = properties.getTracing(); - String wavefrontServiceName = (tracing.getServiceName() != null) ? tracing.getServiceName() : fallbackWavefrontServiceName; + String wavefrontServiceName = (tracing.getServiceName() != null) ? tracing.getServiceName() + : fallbackWavefrontServiceName; String wavefrontApplicationName = (tracing.getApplicationName() != null) ? tracing.getApplicationName() : DEFAULT_WAVEFRONT_APPLICATION_NAME; ApplicationTags.Builder builder = new ApplicationTags.Builder(wavefrontApplicationName, wavefrontServiceName); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java index 4c03b7828e61..741a7438f8bc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/wavefront/WavefrontProperties.java @@ -266,7 +266,9 @@ public static class Tracing { /** * Wavefront Application name used in {@link ApplicationTags}. Defaults to * 'unnamed_application'. - * @see Wavefront Application Tags + * @see Wavefront + * Application Tags */ private String applicationName; @@ -274,19 +276,25 @@ public static class Tracing { * Wavefront Service name used in {@link ApplicationTags}, falling back to * {@code spring.application.name}. If both are unset it defaults to * 'unnamed_service'. - * @see Wavefront Application Tags + * @see Wavefront + * Application Tags */ private String serviceName; /** * Optional Wavefront Cluster name used in {@link ApplicationTags}. - * @see Wavefront Application Tags + * @see Wavefront + * Application Tags */ private String clusterName; /** * Optional Wavefront Shard name used in {@link ApplicationTags}. - * @see Wavefront Application Tags + * @see Wavefront + * Application Tags */ private String shardName;