Deprecate SignalFX support

Closes gh-43962
This commit is contained in:
Moritz Halbritter
2025-01-28 15:10:55 +01:00
parent a13fe0b565
commit 58cc3a0d3d
9 changed files with 94 additions and 47 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2022 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -38,6 +38,7 @@ import org.springframework.context.annotation.Bean;
* @author Jon Schneider * @author Jon Schneider
* @author Andy Wilkinson * @author Andy Wilkinson
* @since 2.0.0 * @since 2.0.0
* @deprecated since 3.5.0 for removal in 3.7.0
*/ */
@AutoConfiguration( @AutoConfiguration(
before = { CompositeMeterRegistryAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class }, before = { CompositeMeterRegistryAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class },
@@ -46,6 +47,8 @@ import org.springframework.context.annotation.Bean;
@ConditionalOnClass(SignalFxMeterRegistry.class) @ConditionalOnClass(SignalFxMeterRegistry.class)
@ConditionalOnEnabledMetricsExport("signalfx") @ConditionalOnEnabledMetricsExport("signalfx")
@EnableConfigurationProperties(SignalFxProperties.class) @EnableConfigurationProperties(SignalFxProperties.class)
@Deprecated(since = "3.5.0", forRemoval = true)
@SuppressWarnings("removal")
public class SignalFxMetricsExportAutoConfiguration { public class SignalFxMetricsExportAutoConfiguration {
@Bean @Bean

View File

@@ -20,6 +20,7 @@ import java.time.Duration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryProperties; import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryProperties;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
/** /**
* {@link ConfigurationProperties @ConfigurationProperties} for configuring metrics export * {@link ConfigurationProperties @ConfigurationProperties} for configuring metrics export
@@ -29,8 +30,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Stephane Nicoll * @author Stephane Nicoll
* @since 2.0.0 * @since 2.0.0
* @deprecated since 3.5.0 for removal in 3.7.0
*/ */
@ConfigurationProperties("management.signalfx.metrics.export") @ConfigurationProperties("management.signalfx.metrics.export")
@Deprecated(since = "3.5.0", forRemoval = true)
public class SignalFxProperties extends StepRegistryProperties { public class SignalFxProperties extends StepRegistryProperties {
/** /**
@@ -60,47 +63,115 @@ public class SignalFxProperties extends StepRegistryProperties {
private HistogramType publishedHistogramType = HistogramType.DEFAULT; private HistogramType publishedHistogramType = HistogramType.DEFAULT;
@Override @Override
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public Duration getStep() { public Duration getStep() {
return this.step; return this.step;
} }
@Override @Override
@Deprecated(since = "3.5.0", forRemoval = true)
public void setStep(Duration step) { public void setStep(Duration step) {
this.step = step; this.step = step;
} }
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public String getAccessToken() { public String getAccessToken() {
return this.accessToken; return this.accessToken;
} }
@Deprecated(since = "3.5.0", forRemoval = true)
public void setAccessToken(String accessToken) { public void setAccessToken(String accessToken) {
this.accessToken = accessToken; this.accessToken = accessToken;
} }
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public String getUri() { public String getUri() {
return this.uri; return this.uri;
} }
@Deprecated(since = "3.5.0", forRemoval = true)
public void setUri(String uri) { public void setUri(String uri) {
this.uri = uri; this.uri = uri;
} }
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public String getSource() { public String getSource() {
return this.source; return this.source;
} }
@Deprecated(since = "3.5.0", forRemoval = true)
public void setSource(String source) { public void setSource(String source) {
this.source = source; this.source = source;
} }
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public HistogramType getPublishedHistogramType() { public HistogramType getPublishedHistogramType() {
return this.publishedHistogramType; return this.publishedHistogramType;
} }
@Deprecated(since = "3.5.0", forRemoval = true)
public void setPublishedHistogramType(HistogramType publishedHistogramType) { public void setPublishedHistogramType(HistogramType publishedHistogramType) {
this.publishedHistogramType = publishedHistogramType; this.publishedHistogramType = publishedHistogramType;
} }
@Override
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public boolean isEnabled() {
return super.isEnabled();
}
@Override
@Deprecated(since = "3.5.0", forRemoval = true)
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
}
@Override
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public Duration getConnectTimeout() {
return super.getConnectTimeout();
}
@Override
@Deprecated(since = "3.5.0", forRemoval = true)
public void setConnectTimeout(Duration connectTimeout) {
super.setConnectTimeout(connectTimeout);
}
@Override
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public Duration getReadTimeout() {
return super.getReadTimeout();
}
@Override
@Deprecated(since = "3.5.0", forRemoval = true)
public void setReadTimeout(Duration readTimeout) {
super.setReadTimeout(readTimeout);
}
@Override
@DeprecatedConfigurationProperty(since = "3.5.0", reason = "Deprecated in Micrometer 1.15.0")
@Deprecated(since = "3.5.0", forRemoval = true)
public Integer getBatchSize() {
return super.getBatchSize();
}
@Override
@Deprecated(since = "3.5.0", forRemoval = true)
public void setBatchSize(Integer batchSize) {
super.setBatchSize(batchSize);
}
@Deprecated(since = "3.5.0", forRemoval = true)
public enum HistogramType { public enum HistogramType {
/** /**

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -19,14 +19,16 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx;
import io.micrometer.signalfx.SignalFxConfig; import io.micrometer.signalfx.SignalFxConfig;
import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesConfigAdapter; import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesConfigAdapter;
import org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxProperties.HistogramType;
/** /**
* Adapter to convert {@link SignalFxProperties} to a {@link SignalFxConfig}. * Adapter to convert {@link SignalFxProperties} to a {@link SignalFxConfig}.
* *
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
* @deprecated since 3.5.0 for removal in 3.7.0
*/ */
@Deprecated(since = "3.5.0", forRemoval = true)
@SuppressWarnings("removal")
public class SignalFxPropertiesConfigAdapter extends StepRegistryPropertiesConfigAdapter<SignalFxProperties> public class SignalFxPropertiesConfigAdapter extends StepRegistryPropertiesConfigAdapter<SignalFxProperties>
implements SignalFxConfig { implements SignalFxConfig {
@@ -61,7 +63,7 @@ public class SignalFxPropertiesConfigAdapter extends StepRegistryPropertiesConfi
} }
private boolean isPublishCumulativeHistogram(SignalFxProperties properties) { private boolean isPublishCumulativeHistogram(SignalFxProperties properties) {
return HistogramType.CUMULATIVE == properties.getPublishedHistogramType(); return SignalFxProperties.HistogramType.CUMULATIVE == properties.getPublishedHistogramType();
} }
@Override @Override
@@ -70,7 +72,7 @@ public class SignalFxPropertiesConfigAdapter extends StepRegistryPropertiesConfi
} }
private boolean isPublishDeltaHistogram(SignalFxProperties properties) { private boolean isPublishDeltaHistogram(SignalFxProperties properties) {
return HistogramType.DELTA == properties.getPublishedHistogramType(); return SignalFxProperties.HistogramType.DELTA == properties.getPublishedHistogramType();
} }
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -34,6 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* *
* @author Andy Wilkinson * @author Andy Wilkinson
*/ */
@SuppressWarnings("removal")
class SignalFxMetricsExportAutoConfigurationTests { class SignalFxMetricsExportAutoConfigurationTests {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesConfigAdapterTests; import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesConfigAdapterTests;
import org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxProperties.HistogramType;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@@ -28,6 +27,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* *
* @author Mirko Sobeck * @author Mirko Sobeck
*/ */
@SuppressWarnings("removal")
class SignalFxPropertiesConfigAdapterTests class SignalFxPropertiesConfigAdapterTests
extends StepRegistryPropertiesConfigAdapterTests<SignalFxProperties, SignalFxPropertiesConfigAdapter> { extends StepRegistryPropertiesConfigAdapterTests<SignalFxProperties, SignalFxPropertiesConfigAdapter> {
@@ -70,7 +70,7 @@ class SignalFxPropertiesConfigAdapterTests
@Test @Test
void whenPropertiesPublishHistogramTypeIsCumulativeAdapterPublishCumulativeHistogramReturnsIt() { void whenPropertiesPublishHistogramTypeIsCumulativeAdapterPublishCumulativeHistogramReturnsIt() {
SignalFxProperties properties = createProperties(); SignalFxProperties properties = createProperties();
properties.setPublishedHistogramType(HistogramType.CUMULATIVE); properties.setPublishedHistogramType(SignalFxProperties.HistogramType.CUMULATIVE);
assertThat(createConfigAdapter(properties).publishCumulativeHistogram()).isTrue(); assertThat(createConfigAdapter(properties).publishCumulativeHistogram()).isTrue();
assertThat(createConfigAdapter(properties).publishDeltaHistogram()).isFalse(); assertThat(createConfigAdapter(properties).publishDeltaHistogram()).isFalse();
} }
@@ -78,7 +78,7 @@ class SignalFxPropertiesConfigAdapterTests
@Test @Test
void whenPropertiesPublishHistogramTypeIsDeltaAdapterPublishDeltaHistogramReturnsIt() { void whenPropertiesPublishHistogramTypeIsDeltaAdapterPublishDeltaHistogramReturnsIt() {
SignalFxProperties properties = createProperties(); SignalFxProperties properties = createProperties();
properties.setPublishedHistogramType(HistogramType.DELTA); properties.setPublishedHistogramType(SignalFxProperties.HistogramType.DELTA);
assertThat(createConfigAdapter(properties).publishDeltaHistogram()).isTrue(); assertThat(createConfigAdapter(properties).publishDeltaHistogram()).isTrue();
assertThat(createConfigAdapter(properties).publishCumulativeHistogram()).isFalse(); assertThat(createConfigAdapter(properties).publishCumulativeHistogram()).isFalse();
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@ import io.micrometer.signalfx.SignalFxConfig;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesTests; import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesTests;
import org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxProperties.HistogramType;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@@ -29,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* *
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@SuppressWarnings("removal")
class SignalFxPropertiesTests extends StepRegistryPropertiesTests { class SignalFxPropertiesTests extends StepRegistryPropertiesTests {
@Test @Test
@@ -43,7 +43,7 @@ class SignalFxPropertiesTests extends StepRegistryPropertiesTests {
// histogram type should be published. // histogram type should be published.
assertThat(config.publishCumulativeHistogram()).isFalse(); assertThat(config.publishCumulativeHistogram()).isFalse();
assertThat(config.publishDeltaHistogram()).isFalse(); assertThat(config.publishDeltaHistogram()).isFalse();
assertThat(properties.getPublishedHistogramType()).isEqualTo(HistogramType.DEFAULT); assertThat(properties.getPublishedHistogramType()).isEqualTo(SignalFxProperties.HistogramType.DEFAULT);
} }
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -32,7 +32,6 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.jmx.JmxMetr
import org.springframework.boot.actuate.autoconfigure.metrics.export.newrelic.NewRelicMetricsExportAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.newrelic.NewRelicMetricsExportAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.otlp.OtlpMetricsExportAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.otlp.OtlpMetricsExportAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxMetricsExportAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -47,6 +46,7 @@ import org.springframework.util.Assert;
* @author Jon Schneider * @author Jon Schneider
* @author Phillip Webb * @author Phillip Webb
*/ */
@SuppressWarnings("removal")
public final class MetricsRun { public final class MetricsRun {
private static final Set<Class<?>> EXPORT_AUTO_CONFIGURATIONS; private static final Set<Class<?>> EXPORT_AUTO_CONFIGURATIONS;
@@ -63,7 +63,8 @@ public final class MetricsRun {
implementations.add(OtlpMetricsExportAutoConfiguration.class); implementations.add(OtlpMetricsExportAutoConfiguration.class);
implementations.add(PrometheusMetricsExportAutoConfiguration.class); implementations.add(PrometheusMetricsExportAutoConfiguration.class);
implementations.add(SimpleMetricsExportAutoConfiguration.class); implementations.add(SimpleMetricsExportAutoConfiguration.class);
implementations.add(SignalFxMetricsExportAutoConfiguration.class); implementations.add(
org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxMetricsExportAutoConfiguration.class);
implementations.add(StatsdMetricsExportAutoConfiguration.class); implementations.add(StatsdMetricsExportAutoConfiguration.class);
EXPORT_AUTO_CONFIGURATIONS = Collections.unmodifiableSet(implementations); EXPORT_AUTO_CONFIGURATIONS = Collections.unmodifiableSet(implementations);
} }

View File

@@ -1134,8 +1134,6 @@
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.otlp[#actuator.metrics.export.otlp] * xref:reference:actuator/metrics.adoc#actuator.metrics.export.otlp[#actuator.metrics.export.otlp]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.prometheus[#actuator.metrics.export.prometheus] * xref:reference:actuator/metrics.adoc#actuator.metrics.export.prometheus[#actuator.metrics.export.prometheus]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.prometheus[#production-ready-metrics-export-prometheus] * xref:reference:actuator/metrics.adoc#actuator.metrics.export.prometheus[#production-ready-metrics-export-prometheus]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.signalfx[#actuator.metrics.export.signalfx]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.signalfx[#production-ready-metrics-export-signalfx]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.simple[#actuator.metrics.export.simple] * xref:reference:actuator/metrics.adoc#actuator.metrics.export.simple[#actuator.metrics.export.simple]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.simple[#production-ready-metrics-export-simple] * xref:reference:actuator/metrics.adoc#actuator.metrics.export.simple[#production-ready-metrics-export-simple]
* xref:reference:actuator/metrics.adoc#actuator.metrics.export.stackdriver[#actuator.metrics.export.stackdriver] * xref:reference:actuator/metrics.adoc#actuator.metrics.export.stackdriver[#actuator.metrics.export.stackdriver]

View File

@@ -17,7 +17,6 @@ Spring Boot Actuator provides dependency management and auto-configuration for {
- xref:actuator/metrics.adoc#actuator.metrics.export.newrelic[] - xref:actuator/metrics.adoc#actuator.metrics.export.newrelic[]
- xref:actuator/metrics.adoc#actuator.metrics.export.otlp[] - xref:actuator/metrics.adoc#actuator.metrics.export.otlp[]
- xref:actuator/metrics.adoc#actuator.metrics.export.prometheus[] - xref:actuator/metrics.adoc#actuator.metrics.export.prometheus[]
- xref:actuator/metrics.adoc#actuator.metrics.export.signalfx[]
- xref:actuator/metrics.adoc#actuator.metrics.export.simple[] (in-memory) - xref:actuator/metrics.adoc#actuator.metrics.export.simple[] (in-memory)
- xref:actuator/metrics.adoc#actuator.metrics.export.stackdriver[] - xref:actuator/metrics.adoc#actuator.metrics.export.stackdriver[]
- xref:actuator/metrics.adoc#actuator.metrics.export.statsd[] - xref:actuator/metrics.adoc#actuator.metrics.export.statsd[]
@@ -573,34 +572,6 @@ For advanced configuration, you can also provide your own javadoc:org.springfram
[[actuator.metrics.export.signalfx]]
=== SignalFx
SignalFx registry periodically pushes metrics to {url-micrometer-docs-implementations}/signalFx[SignalFx].
To export metrics to https://www.signalfx.com[SignalFx], you must provide your access token:
[configprops,yaml]
----
management:
signalfx:
metrics:
export:
access-token: "YOUR_ACCESS_TOKEN"
----
You can also change the interval at which metrics are sent to SignalFx:
[configprops,yaml]
----
management:
signalfx:
metrics:
export:
step: "30s"
----
[[actuator.metrics.export.simple]] [[actuator.metrics.export.simple]]
=== Simple === Simple