Move metrics properties to "management.metrics"

Closes gh-11340
This commit is contained in:
Stephane Nicoll 2017-12-14 12:27:24 +01:00
parent de8fe7550f
commit ef78cb33b3
28 changed files with 149 additions and 132 deletions

View File

@ -37,7 +37,7 @@ import org.springframework.context.annotation.Configuration;
class MeterBindersConfiguration { class MeterBindersConfiguration {
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.binders.jvmmemory.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.binders.jvmmemory.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(JvmMemoryMetrics.class) @ConditionalOnMissingBean(JvmMemoryMetrics.class)
public JvmMemoryMetrics jvmMemoryMetrics() { public JvmMemoryMetrics jvmMemoryMetrics() {
return new JvmMemoryMetrics(); return new JvmMemoryMetrics();
@ -45,21 +45,21 @@ class MeterBindersConfiguration {
@Bean @Bean
@ConditionalOnMissingBean(LogbackMetrics.class) @ConditionalOnMissingBean(LogbackMetrics.class)
@ConditionalOnProperty(value = "spring.metrics.binders.logback.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.binders.logback.enabled", matchIfMissing = true)
@ConditionalOnClass(name = "ch.qos.logback.classic.Logger") @ConditionalOnClass(name = "ch.qos.logback.classic.Logger")
public LogbackMetrics logbackMetrics() { public LogbackMetrics logbackMetrics() {
return new LogbackMetrics(); return new LogbackMetrics();
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.binders.uptime.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.binders.uptime.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(UptimeMetrics.class) @ConditionalOnMissingBean(UptimeMetrics.class)
public UptimeMetrics uptimeMetrics() { public UptimeMetrics uptimeMetrics() {
return new UptimeMetrics(); return new UptimeMetrics();
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.binders.processor.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.binders.processor.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(ProcessorMetrics.class) @ConditionalOnMissingBean(ProcessorMetrics.class)
public ProcessorMetrics processorMetrics() { public ProcessorMetrics processorMetrics() {
return new ProcessorMetrics(); return new ProcessorMetrics();

View File

@ -24,7 +24,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties("spring.metrics") @ConfigurationProperties("management.metrics")
public class MetricsProperties { public class MetricsProperties {
private Web web = new Web(); private Web web = new Web();

View File

@ -47,7 +47,7 @@ public class AtlasExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.atlas.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.atlas.enabled", matchIfMissing = true)
public MetricsExporter atlasExporter(AtlasConfig atlasConfig, Clock clock) { public MetricsExporter atlasExporter(AtlasConfig atlasConfig, Clock clock) {
return () -> new AtlasMeterRegistry(atlasConfig, clock); return () -> new AtlasMeterRegistry(atlasConfig, clock);
} }

View File

@ -27,7 +27,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2.0.0 * @since 2.0.0
* @author Jon Schneider * @author Jon Schneider
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.atlas") @ConfigurationProperties(prefix = "management.metrics.export.atlas")
public class AtlasProperties extends StepRegistryProperties { public class AtlasProperties extends StepRegistryProperties {
/** /**

View File

@ -36,7 +36,7 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration @Configuration
@ConditionalOnClass(DatadogMeterRegistry.class) @ConditionalOnClass(DatadogMeterRegistry.class)
@ConditionalOnProperty("spring.metrics.export.datadog.api-key") @ConditionalOnProperty("management.metrics.export.datadog.api-key")
@EnableConfigurationProperties(DatadogProperties.class) @EnableConfigurationProperties(DatadogProperties.class)
public class DatadogExportConfiguration { public class DatadogExportConfiguration {
@ -47,7 +47,7 @@ public class DatadogExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.datadog.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.datadog.enabled", matchIfMissing = true)
public MetricsExporter datadogExporter(DatadogConfig datadogConfig, Clock clock) { public MetricsExporter datadogExporter(DatadogConfig datadogConfig, Clock clock) {
return () -> new DatadogMeterRegistry(datadogConfig, clock); return () -> new DatadogMeterRegistry(datadogConfig, clock);
} }

View File

@ -25,7 +25,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.datadog") @ConfigurationProperties(prefix = "management.metrics.export.datadog")
public class DatadogProperties extends StepRegistryProperties { public class DatadogProperties extends StepRegistryProperties {
/** /**

View File

@ -47,7 +47,7 @@ public class GangliaExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.ganglia.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.ganglia.enabled", matchIfMissing = true)
public MetricsExporter gangliaExporter(GangliaConfig gangliaConfig, public MetricsExporter gangliaExporter(GangliaConfig gangliaConfig,
HierarchicalNameMapper nameMapper, Clock clock) { HierarchicalNameMapper nameMapper, Clock clock) {
return () -> new GangliaMeterRegistry(gangliaConfig, nameMapper, clock); return () -> new GangliaMeterRegistry(gangliaConfig, nameMapper, clock);

View File

@ -29,7 +29,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.ganglia") @ConfigurationProperties(prefix = "management.metrics.export.ganglia")
public class GangliaProperties { public class GangliaProperties {
/** /**

View File

@ -47,7 +47,7 @@ public class GraphiteExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.graphite.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.graphite.enabled", matchIfMissing = true)
public MetricsExporter graphiteExporter(GraphiteConfig graphiteConfig, public MetricsExporter graphiteExporter(GraphiteConfig graphiteConfig,
HierarchicalNameMapper nameMapper, Clock clock) { HierarchicalNameMapper nameMapper, Clock clock) {
return () -> new GraphiteMeterRegistry(graphiteConfig, nameMapper, clock); return () -> new GraphiteMeterRegistry(graphiteConfig, nameMapper, clock);

View File

@ -29,7 +29,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.graphite") @ConfigurationProperties(prefix = "management.metrics.export.graphite")
public class GraphiteProperties { public class GraphiteProperties {
/** /**

View File

@ -46,7 +46,7 @@ public class InfluxExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.influx.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.influx.enabled", matchIfMissing = true)
public MetricsExporter influxExporter(InfluxConfig influxConfig, Clock clock) { public MetricsExporter influxExporter(InfluxConfig influxConfig, Clock clock) {
return () -> new InfluxMeterRegistry(influxConfig, clock); return () -> new InfluxMeterRegistry(influxConfig, clock);
} }

View File

@ -27,7 +27,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.influx") @ConfigurationProperties(prefix = "management.metrics.export.influx")
public class InfluxProperties extends StepRegistryProperties { public class InfluxProperties extends StepRegistryProperties {
/** /**

View File

@ -38,7 +38,7 @@ import org.springframework.context.annotation.Configuration;
public class JmxExportConfiguration { public class JmxExportConfiguration {
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.jmx.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.jmx.enabled", matchIfMissing = true)
public MetricsExporter jmxExporter(HierarchicalNameMapper nameMapper, Clock clock) { public MetricsExporter jmxExporter(HierarchicalNameMapper nameMapper, Clock clock) {
return () -> new JmxMeterRegistry(nameMapper, clock); return () -> new JmxMeterRegistry(nameMapper, clock);
} }

View File

@ -49,7 +49,7 @@ public class PrometheusExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.prometheus.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.prometheus.enabled", matchIfMissing = true)
public MetricsExporter prometheusExporter(PrometheusConfig prometheusConfig, public MetricsExporter prometheusExporter(PrometheusConfig prometheusConfig,
CollectorRegistry collectorRegistry, Clock clock) { CollectorRegistry collectorRegistry, Clock clock) {
return () -> new PrometheusMeterRegistry(prometheusConfig, collectorRegistry, return () -> new PrometheusMeterRegistry(prometheusConfig, collectorRegistry,

View File

@ -26,7 +26,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.prometheus") @ConfigurationProperties(prefix = "management.metrics.export.prometheus")
public class PrometheusProperties { public class PrometheusProperties {
/** /**

View File

@ -38,7 +38,7 @@ import org.springframework.context.annotation.Configuration;
public class SimpleExportConfiguration { public class SimpleExportConfiguration {
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.simple.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.simple.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(MetricsExporter.class) @ConditionalOnMissingBean(MetricsExporter.class)
public MetricsExporter simpleExporter(SimpleConfig config, Clock clock) { public MetricsExporter simpleExporter(SimpleConfig config, Clock clock) {
return () -> new SimpleMeterRegistry(config, clock); return () -> new SimpleMeterRegistry(config, clock);

View File

@ -30,7 +30,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Jon Schneider * @author Jon Schneider
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.simple") @ConfigurationProperties(prefix = "management.metrics.export.simple")
public class SimpleProperties { public class SimpleProperties {
/** /**

View File

@ -47,7 +47,7 @@ public class StatsdExportConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(value = "spring.metrics.export.statsd.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.export.statsd.enabled", matchIfMissing = true)
public MetricsExporter statsdExporter(StatsdConfig statsdConfig, public MetricsExporter statsdExporter(StatsdConfig statsdConfig,
HierarchicalNameMapper hierarchicalNameMapper, Clock clock) { HierarchicalNameMapper hierarchicalNameMapper, Clock clock) {
return () -> new StatsdMeterRegistry(statsdConfig, hierarchicalNameMapper, clock); return () -> new StatsdMeterRegistry(statsdConfig, hierarchicalNameMapper, clock);

View File

@ -29,7 +29,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Stephane Nicoll * @author Stephane Nicoll
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "spring.metrics.export.statsd") @ConfigurationProperties(prefix = "management.metrics.export.statsd")
public class StatsdProperties { public class StatsdProperties {
/** /**

View File

@ -43,7 +43,7 @@ import org.springframework.util.StringUtils;
*/ */
@Configuration @Configuration
@ConditionalOnBean({ DataSource.class, DataSourcePoolMetadataProvider.class }) @ConditionalOnBean({ DataSource.class, DataSourcePoolMetadataProvider.class })
@ConditionalOnProperty(value = "spring.metrics.jdbc.instrument-datasource", matchIfMissing = true) @ConditionalOnProperty(value = "management.metrics.jdbc.instrument-datasource", matchIfMissing = true)
@EnableConfigurationProperties(JdbcMetricsProperties.class) @EnableConfigurationProperties(JdbcMetricsProperties.class)
public class DataSourcePoolMetricsConfiguration { public class DataSourcePoolMetricsConfiguration {

View File

@ -24,7 +24,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Stephane Nicoll * @author Stephane Nicoll
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties("spring.metrics.jdbc") @ConfigurationProperties("management.metrics.jdbc")
public class JdbcMetricsProperties { public class JdbcMetricsProperties {
/** /**

View File

@ -186,31 +186,31 @@
"defaultValue": true "defaultValue": true
}, },
{ {
"name": "spring.metrics.binders.jvmmemory.enabled", "name": "management.metrics.binders.jvmmemory.enabled",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",
"description": "Whether to enable JVM memory metrics.", "description": "Whether to enable JVM memory metrics.",
"defaultValue": true "defaultValue": true
}, },
{ {
"name": "spring.metrics.binders.logback.enabled", "name": "management.metrics.binders.logback.enabled",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",
"description": "Whether to enable Logback metrics.", "description": "Whether to enable Logback metrics.",
"defaultValue": true "defaultValue": true
}, },
{ {
"name": "spring.metrics.binders.processor.enabled", "name": "management.metrics.binders.processor.enabled",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",
"description": "Whether to enable processor metrics.", "description": "Whether to enable processor metrics.",
"defaultValue": true "defaultValue": true
}, },
{ {
"name": "spring.metrics.binders.uptime.enabled", "name": "management.metrics.binders.uptime.enabled",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",
"description": "Whether to enable uptime metrics.", "description": "Whether to enable uptime metrics.",
"defaultValue": true "defaultValue": true
}, },
{ {
"name": "spring.metrics.jdbc.instrument-datasource", "name": "management.metrics.jdbc.instrument-datasource",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",
"description": "Instrument all available data sources.", "description": "Instrument all available data sources.",
"defaultValue": true "defaultValue": true
@ -1516,7 +1516,6 @@
"description": "Key for redis repository export (if active). Should be globally unique for a\n system sharing a redis repository across multiple processes.", "description": "Key for redis repository export (if active). Should be globally unique for a\n system sharing a redis repository across multiple processes.",
"defaultValue": "keys.spring.metrics", "defaultValue": "keys.spring.metrics",
"deprecation": { "deprecation": {
"replacement": "spring.sendgrid.api-key",
"reason": "Metrics support is now using Micrometer.", "reason": "Metrics support is now using Micrometer.",
"level": "error" "level": "error"
} }
@ -1540,6 +1539,25 @@
"level": "error" "level": "error"
} }
}, },
{
"name": "spring.metrics.export.statsd.host",
"type": "java.lang.String",
"description": "Host of a statsd server to receive exported metrics.",
"deprecation": {
"replacement": "management.metrics.export.statsd.host",
"level": "error"
}
},
{
"name": "spring.metrics.export.statsd.port",
"type": "java.lang.Integer",
"description": "Port of a statsd server to receive exported metrics.",
"defaultValue": 8125,
"deprecation": {
"replacement": "management.metrics.export.statsd.port",
"level": "error"
}
},
{ {
"name": "spring.metrics.export.statsd.prefix", "name": "spring.metrics.export.statsd.prefix",
"type": "java.lang.String", "type": "java.lang.String",

View File

@ -70,14 +70,14 @@ public class WebEndpointsAutoConfigurationIntegrationTests {
return new WebApplicationContextRunner() return new WebApplicationContextRunner()
.withConfiguration( .withConfiguration(
UserConfigurations.of(WebEndpointTestApplication.class)) UserConfigurations.of(WebEndpointTestApplication.class))
.withPropertyValues("spring.metrics.export.statsd.enabled:false"); .withPropertyValues("management.metrics.export.statsd.enabled:false");
} }
private ReactiveWebApplicationContextRunner reactiveWebRunner() { private ReactiveWebApplicationContextRunner reactiveWebRunner() {
return new ReactiveWebApplicationContextRunner() return new ReactiveWebApplicationContextRunner()
.withConfiguration( .withConfiguration(
UserConfigurations.of(WebEndpointTestApplication.class)) UserConfigurations.of(WebEndpointTestApplication.class))
.withPropertyValues("spring.metrics.export.statsd.enabled:false"); .withPropertyValues("management.metrics.export.statsd.enabled:false");
} }
@EnableAutoConfiguration(exclude = { FlywayAutoConfiguration.class, @EnableAutoConfiguration(exclude = { FlywayAutoConfiguration.class,

View File

@ -67,7 +67,7 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat
*/ */
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = MetricsAutoConfigurationIntegrationTests.MetricsApp.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = MetricsAutoConfigurationIntegrationTests.MetricsApp.class)
@TestPropertySource(properties = "spring.metrics.use-global-registry=false") @TestPropertySource(properties = "management.metrics.use-global-registry=false")
public class MetricsAutoConfigurationIntegrationTests { public class MetricsAutoConfigurationIntegrationTests {
@Autowired @Autowired

View File

@ -50,7 +50,7 @@ public class MetricsAutoConfigurationTests {
.withConfiguration( .withConfiguration(
AutoConfigurations.of(DataSourceAutoConfiguration.class)) AutoConfigurations.of(DataSourceAutoConfiguration.class))
.withPropertyValues("spring.datasource.generate-unique-name=true", .withPropertyValues("spring.datasource.generate-unique-name=true",
"spring.metrics.use-global-registry=false") "management.metrics.use-global-registry=false")
.run((context) -> { .run((context) -> {
context.getBean(DataSource.class).getConnection().getMetaData(); context.getBean(DataSource.class).getConnection().getMetaData();
MeterRegistry registry = context.getBean(MeterRegistry.class); MeterRegistry registry = context.getBean(MeterRegistry.class);
@ -65,8 +65,8 @@ public class MetricsAutoConfigurationTests {
.withConfiguration( .withConfiguration(
AutoConfigurations.of(DataSourceAutoConfiguration.class)) AutoConfigurations.of(DataSourceAutoConfiguration.class))
.withPropertyValues("spring.datasource.generate-unique-name=true", .withPropertyValues("spring.datasource.generate-unique-name=true",
"spring.metrics.jdbc.datasource-metric-name=custom.name", "management.metrics.jdbc.datasource-metric-name=custom.name",
"spring.metrics.use-global-registry=false") "management.metrics.use-global-registry=false")
.run((context) -> { .run((context) -> {
context.getBean(DataSource.class).getConnection().getMetaData(); context.getBean(DataSource.class).getConnection().getMetaData();
MeterRegistry registry = context.getBean(MeterRegistry.class); MeterRegistry registry = context.getBean(MeterRegistry.class);
@ -81,8 +81,8 @@ public class MetricsAutoConfigurationTests {
.withConfiguration( .withConfiguration(
AutoConfigurations.of(DataSourceAutoConfiguration.class)) AutoConfigurations.of(DataSourceAutoConfiguration.class))
.withPropertyValues("spring.datasource.generate-unique-name=true", .withPropertyValues("spring.datasource.generate-unique-name=true",
"spring.metrics.jdbc.instrument-datasource=false", "management.metrics.jdbc.instrument-datasource=false",
"spring.metrics.use-global-registry=false") "management.metrics.use-global-registry=false")
.run((context) -> { .run((context) -> {
context.getBean(DataSource.class).getConnection().getMetaData(); context.getBean(DataSource.class).getConnection().getMetaData();
MeterRegistry registry = context.getBean(MeterRegistry.class); MeterRegistry registry = context.getBean(MeterRegistry.class);

View File

@ -39,14 +39,14 @@ public class SimpleExportConfigurationTests {
@Test @Test
public void simpleMeterRegistryIsInTheCompositeWhenNoOtherRegistryIs() { public void simpleMeterRegistryIsInTheCompositeWhenNoOtherRegistryIs() {
new ApplicationContextRunner() new ApplicationContextRunner()
.withPropertyValues("spring.metrics.export.atlas.enabled=false", .withPropertyValues("management.metrics.export.atlas.enabled=false",
"spring.metrics.export.datadog.enabled=false", "management.metrics.export.datadog.enabled=false",
"spring.metrics.export.ganglia.enabled=false", "management.metrics.export.ganglia.enabled=false",
"spring.metrics.export.graphite.enabled=false", "management.metrics.export.graphite.enabled=false",
"spring.metrics.export.influx.enabled=false", "management.metrics.export.influx.enabled=false",
"spring.metrics.export.jmx.enabled=false", "management.metrics.export.jmx.enabled=false",
"spring.metrics.export.prometheus.enabled=false", "management.metrics.export.prometheus.enabled=false",
"spring.metrics.export.statsd.enabled=false") "management.metrics.export.statsd.enabled=false")
.withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class)) .withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class))
.run((context) -> { .run((context) -> {
CompositeMeterRegistry meterRegistry = context CompositeMeterRegistry meterRegistry = context

View File

@ -1246,89 +1246,88 @@ content into your application. Rather, pick only the properties that you need.
management.jolokia.enabled=false # Whether to enable Jolokia. management.jolokia.enabled=false # Whether to enable Jolokia.
management.jolokia.path=/jolokia # Path at which Jolokia is available. management.jolokia.path=/jolokia # Path at which Jolokia is available.
# METRICS
management.metrics.binders.jvmmemory.enabled=true # Whether to enable JVM memory metrics.
management.metrics.binders.logback.enabled=true # Whether to enable Logback metrics.
management.metrics.binders.processor.enabled=true # Whether to enable processor metrics.
management.metrics.binders.uptime.enabled=true # Whether to enable uptime metrics.
management.metrics.export.atlas.batch-size= # Number of measurements per request to use for the backend. If more measurements are found, then multiple requests will be made.
management.metrics.export.atlas.config-refresh-frequency= # Frequency for refreshing config settings from the LWC service.
management.metrics.export.atlas.config-time-to-live= # Time to live for subscriptions from the LWC service.
management.metrics.export.atlas.config-uri= # URI for the Atlas LWC endpoint to retrieve current subscriptions.
management.metrics.export.atlas.connect-timeout= # Connection timeout for requests to the backend.
management.metrics.export.atlas.enabled= # Whether exporting of metrics to this backend is enabled.
management.metrics.export.atlas.eval-uri= # URI for the Atlas LWC endpoint to evaluate the data for a subscription.
management.metrics.export.atlas.lwc-enabled= # Enable streaming to Atlas LWC.
management.metrics.export.atlas.meter-time-to-live= # Time to live for meters that do not have any activity. After this period the meter will be considered expired and will not get reported.
management.metrics.export.atlas.num-threads= # Number of threads to use with the metrics publishing scheduler.
management.metrics.export.atlas.read-timeout= # Read timeout for requests to the backend.
management.metrics.export.atlas.step=1m # Step size (i.e. reporting frequency) to use.
management.metrics.export.atlas.uri= # URI of the Atlas server.
management.metrics.export.datadog.api-key= # Datadog API key.
management.metrics.export.datadog.batch-size= # Number of measurements per request to use for the backend. If more measurements are found, then multiple requests will be made.
management.metrics.export.datadog.connect-timeout= # Connection timeout for requests to the backend.
management.metrics.export.datadog.enabled= # Whether exporting of metrics to this backend is enabled.
management.metrics.export.datadog.host-tag= # Tag that will be mapped to "host" when shipping metrics to Datadog. Can be omitted if host should be omitted on publishing.
management.metrics.export.datadog.num-threads= # Number of threads to use with the metrics publishing scheduler.
management.metrics.export.datadog.read-timeout= # Read timeout for requests to the backend.
management.metrics.export.datadog.step=1m # Step size (i.e. reporting frequency) to use.
management.metrics.export.datadog.uri= # URI to ship metrics to. If you need to publish metrics to an internal proxy en-route to Datadog, you can define the location of the proxy with this.
management.metrics.export.ganglia.addressing-mode= # UDP addressing mode, either unicast or multicast.
management.metrics.export.ganglia.duration-units= # Base time unit used to report durations.
management.metrics.export.ganglia.enabled= # Whether exporting of metrics to Ganglia is enabled.
management.metrics.export.ganglia.host= # Host of the Ganglia server to receive exported metrics.
management.metrics.export.ganglia.port= # Port of the Ganglia server to receive exported metrics.
management.metrics.export.ganglia.protocol-version= # Ganglia protocol version. Must be either 3.1 or 3.0.
management.metrics.export.ganglia.rate-units= # Base time unit used to report rates.
management.metrics.export.ganglia.step= # Step size (i.e. reporting frequency) to use.
management.metrics.export.ganglia.time-to-live= # Time to live for metrics on Ganglia.
management.metrics.export.graphite.duration-units= # Base time unit used to report durations.
management.metrics.export.graphite.enabled= # Whether exporting of metrics to Graphite is enabled.
management.metrics.export.graphite.host= # Host of the Graphite server to receive exported metrics.
management.metrics.export.graphite.port= # Port of the Graphite server to receive exported metrics.
management.metrics.export.graphite.protocol= # Protocol to use while shipping data to Graphite.
management.metrics.export.graphite.rate-units= # Base time unit used to report rates.
management.metrics.export.graphite.step= # Step size (i.e. reporting frequency) to use.
management.metrics.export.influx.batch-size= # Number of measurements per request to use for the backend. If more measurements are found, then multiple requests will be made.
management.metrics.export.influx.compressed= # Enable GZIP compression of metrics batches published to Influx.
management.metrics.export.influx.connect-timeout= # Connection timeout for requests to the backend.
management.metrics.export.influx.consistency= # Write consistency for each point.
management.metrics.export.influx.db= # Tag that will be mapped to "host" when shipping metrics to Influx. Can be omitted if host should be omitted on publishing.
management.metrics.export.influx.enabled= # Whether exporting of metrics to this backend is enabled.
management.metrics.export.influx.num-threads= # Number of threads to use with the metrics publishing scheduler.
management.metrics.export.influx.password= # Login password of the Influx server.
management.metrics.export.influx.read-timeout= # Read timeout for requests to the backend.
management.metrics.export.influx.retention-policy= # Retention policy to use (Influx writes to the DEFAULT retention policy if one is not specified).
management.metrics.export.influx.step=1m # Step size (i.e. reporting frequency) to use.
management.metrics.export.influx.uri= # URI of the Influx server.
management.metrics.export.influx.user-name= # Login user of the Influx server.
management.metrics.export.prometheus.descriptions= # Enable publishing descriptions as part of the scrape payload to Prometheus. Turn this off to minimize the amount of data sent on each scrape.
management.metrics.export.prometheus.enabled= # Whether exporting of metrics to Prometheus is enabled.
management.metrics.export.prometheus.step= # Step size (i.e. reporting frequency) to use.
management.metrics.export.simple.enabled=false # Whether exporting of metrics to a simple in-memory store is enabled.
management.metrics.export.simple.mode=cumulative # Counting mode.
management.metrics.export.simple.step=10s # Step size (i.e. reporting frequency) to use.
management.metrics.export.statsd.enabled= # Export metrics to StatsD.
management.metrics.export.statsd.flavor=datadog # StatsD line protocol to use.
management.metrics.export.statsd.host=localhost # Host of the StatsD server to receive exported metrics.
management.metrics.export.statsd.max-packet-length=1400 # Total length of a single payload should be kept within your network's MTU.
management.metrics.export.statsd.polling-frequency=10s # 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.
management.metrics.export.statsd.port=8125 # Port of the StatsD server to receive exported metrics.
management.metrics.export.statsd.queue-size=2147483647 # Maximum size of the queue of items waiting to be sent to the StatsD server.
management.metrics.jdbc.datasource-metric-name=data.source # Name of the metric for data source usage.
management.metrics.jdbc.instrument-datasource=true # Instrument all available data sources.
management.metrics.use-global-registry=true # Whether auto-configured MeterRegistry implementations should be bound to the global static registry on Metrics.
management.metrics.web.client.record-request-percentiles=false # Whether instrumented requests record percentiles histogram buckets by default.
management.metrics.web.client.requests-metric-name=http.client.requests # Name of the metric for sent requests.
management.metrics.web.server.auto-time-requests=true # Whether requests handled by Spring MVC or WebFlux should be automatically timed.
management.metrics.web.server.record-request-percentiles=false # Whether instrumented requests record percentiles histogram buckets by default.
management.metrics.web.server.requests-metric-name=http.server.requests # Name of the metric for received requests.
# TRACING ({sc-spring-boot-actuator-autoconfigure}/trace/TraceEndpointProperties.{sc-ext}[TraceEndpointProperties]) # TRACING ({sc-spring-boot-actuator-autoconfigure}/trace/TraceEndpointProperties.{sc-ext}[TraceEndpointProperties])
management.trace.filter.enabled=true # Whether to enable the trace servlet filter. management.trace.filter.enabled=true # Whether to enable the trace servlet filter.
management.trace.include=request-headers,response-headers,cookies,errors # Items to be included in the trace. management.trace.include=request-headers,response-headers,cookies,errors # Items to be included in the trace.
# METRICS
spring.metrics.binders.jvmmemory.enabled=true # Whether to enable JVM memory metrics.
spring.metrics.binders.logback.enabled=true # Whether to enable Logback metrics.
spring.metrics.binders.processor.enabled=true # Whether to enable processor metrics.
spring.metrics.binders.uptime.enabled=true # Whether to enable uptime metrics.
spring.metrics.export.atlas.batch-size= # Number of measurements per request to use for the backend. If more measurements are found, then multiple requests will be made.
spring.metrics.export.atlas.config-refresh-frequency= # Frequency for refreshing config settings from the LWC service.
spring.metrics.export.atlas.config-time-to-live= # Time to live for subscriptions from the LWC service.
spring.metrics.export.atlas.config-uri= # URI for the Atlas LWC endpoint to retrieve current subscriptions.
spring.metrics.export.atlas.connect-timeout= # Connection timeout for requests to the backend.
spring.metrics.export.atlas.enabled= # Whether exporting of metrics to this backend is enabled.
spring.metrics.export.atlas.eval-uri= # URI for the Atlas LWC endpoint to evaluate the data for a subscription.
spring.metrics.export.atlas.lwc-enabled= # Enable streaming to Atlas LWC.
spring.metrics.export.atlas.meter-time-to-live= # Time to live for meters that do not have any activity. After this period the meter will be considered expired and will not get reported.
spring.metrics.export.atlas.num-threads= # Number of threads to use with the metrics publishing scheduler.
spring.metrics.export.atlas.read-timeout= # Read timeout for requests to the backend.
spring.metrics.export.atlas.step=1m # Step size (i.e. reporting frequency) to use.
spring.metrics.export.atlas.uri= # URI of the Atlas server.
spring.metrics.export.datadog.api-key= # Datadog API key.
spring.metrics.export.datadog.batch-size= # Number of measurements per request to use for the backend. If more measurements are found, then multiple requests will be made.
spring.metrics.export.datadog.connect-timeout= # Connection timeout for requests to the backend.
spring.metrics.export.datadog.enabled= # Whether exporting of metrics to this backend is enabled.
spring.metrics.export.datadog.host-tag= # Tag that will be mapped to "host" when shipping metrics to Datadog. Can be omitted if host should be omitted on publishing.
spring.metrics.export.datadog.num-threads= # Number of threads to use with the metrics publishing scheduler.
spring.metrics.export.datadog.read-timeout= # Read timeout for requests to the backend.
spring.metrics.export.datadog.step=1m # Step size (i.e. reporting frequency) to use.
spring.metrics.export.datadog.uri= # URI to ship metrics to. If you need to publish metrics to an internal proxy en-route to Datadog, you can define the location of the proxy with this.
spring.metrics.export.ganglia.addressing-mode= # UDP addressing mode, either unicast or multicast.
spring.metrics.export.ganglia.duration-units= # Base time unit used to report durations.
spring.metrics.export.ganglia.enabled= # Whether exporting of metrics to Ganglia is enabled.
spring.metrics.export.ganglia.host= # Host of the Ganglia server to receive exported metrics.
spring.metrics.export.ganglia.port= # Port of the Ganglia server to receive exported metrics.
spring.metrics.export.ganglia.protocol-version= # Ganglia protocol version. Must be either 3.1 or 3.0.
spring.metrics.export.ganglia.rate-units= # Base time unit used to report rates.
spring.metrics.export.ganglia.step= # Step size (i.e. reporting frequency) to use.
spring.metrics.export.ganglia.time-to-live= # Time to live for metrics on Ganglia.
spring.metrics.export.graphite.duration-units= # Base time unit used to report durations.
spring.metrics.export.graphite.enabled= # Whether exporting of metrics to Graphite is enabled.
spring.metrics.export.graphite.host= # Host of the Graphite server to receive exported metrics.
spring.metrics.export.graphite.port= # Port of the Graphite server to receive exported metrics.
spring.metrics.export.graphite.protocol= # Protocol to use while shipping data to Graphite.
spring.metrics.export.graphite.rate-units= # Base time unit used to report rates.
spring.metrics.export.graphite.step= # Step size (i.e. reporting frequency) to use.
spring.metrics.export.influx.batch-size= # Number of measurements per request to use for the backend. If more measurements are found, then multiple requests will be made.
spring.metrics.export.influx.compressed= # Enable GZIP compression of metrics batches published to Influx.
spring.metrics.export.influx.connect-timeout= # Connection timeout for requests to the backend.
spring.metrics.export.influx.consistency= # Write consistency for each point.
spring.metrics.export.influx.db= # Tag that will be mapped to "host" when shipping metrics to Influx. Can be omitted if host should be omitted on publishing.
spring.metrics.export.influx.enabled= # Whether exporting of metrics to this backend is enabled.
spring.metrics.export.influx.num-threads= # Number of threads to use with the metrics publishing scheduler.
spring.metrics.export.influx.password= # Login password of the Influx server.
spring.metrics.export.influx.read-timeout= # Read timeout for requests to the backend.
spring.metrics.export.influx.retention-policy= # Retention policy to use (Influx writes to the DEFAULT retention policy if one is not specified).
spring.metrics.export.influx.step=1m # Step size (i.e. reporting frequency) to use.
spring.metrics.export.influx.uri= # URI of the Influx server.
spring.metrics.export.influx.user-name= # Login user of the Influx server.
spring.metrics.export.prometheus.descriptions= # Enable publishing descriptions as part of the scrape payload to Prometheus. Turn this off to minimize the amount of data sent on each scrape.
spring.metrics.export.prometheus.enabled= # Whether exporting of metrics to Prometheus is enabled.
spring.metrics.export.prometheus.step= # Step size (i.e. reporting frequency) to use.
spring.metrics.export.simple.enabled=false # Whether exporting of metrics to a simple in-memory store is enabled.
spring.metrics.export.simple.mode=cumulative # Counting mode.
spring.metrics.export.simple.step=10s # Step size (i.e. reporting frequency) to use.
spring.metrics.export.statsd.enabled= # Export metrics to StatsD.
spring.metrics.export.statsd.flavor=datadog # StatsD line protocol to use.
spring.metrics.export.statsd.host=localhost # Host of the StatsD server to receive exported metrics.
spring.metrics.export.statsd.max-packet-length=1400 # Total length of a single payload should be kept within your network's MTU.
spring.metrics.export.statsd.polling-frequency=10s # 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.
spring.metrics.export.statsd.port=8125 # Port of the StatsD server to receive exported metrics.
spring.metrics.export.statsd.queue-size=2147483647 # Maximum size of the queue of items waiting to be sent to the StatsD server.
spring.metrics.jdbc.datasource-metric-name=data.source # Name of the metric for data source usage.
spring.metrics.jdbc.instrument-datasource=true # Instrument all available data sources.
spring.metrics.use-global-registry=true # Whether auto-configured MeterRegistry implementations should be bound to the global static registry on Metrics.
spring.metrics.web.client.record-request-percentiles=false # Whether instrumented requests record percentiles histogram buckets by default.
spring.metrics.web.client.requests-metric-name=http.client.requests # Name of the metric for sent requests.
spring.metrics.web.server.auto-time-requests=true # Whether requests handled by Spring MVC or WebFlux should be automatically timed.
spring.metrics.web.server.record-request-percentiles=false # Whether instrumented requests record percentiles histogram buckets by default.
spring.metrics.web.server.requests-metric-name=http.server.requests # Name of the metric for received requests.
# ---------------------------------------- # ----------------------------------------
# DEVTOOLS PROPERTIES # DEVTOOLS PROPERTIES

View File

@ -934,12 +934,12 @@ its https://micrometer.io/docs[reference documentation].
[[production-ready-metrics-spring-mvc]] [[production-ready-metrics-spring-mvc]]
=== Spring MVC Metrics === Spring MVC Metrics
Auto-configuration enables the instrumentation of requests handled by Spring MVC. When Auto-configuration enables the instrumentation of requests handled by Spring MVC. When
`spring.metrics.web.server.auto-time-requests` is `true`, this instrumentation occurs for `management.metrics.web.server.auto-time-requests` is `true`, this instrumentation occurs
all requests. Alternatively, when set to `false`, you can enable instrumentation by for all requests. Alternatively, when set to `false`, you can enable instrumentation by
adding `@Timed` to a request-handling method. adding `@Timed` to a request-handling method.
By default, metrics are generated with the name, `http.server.requests`. The name can be By default, metrics are generated with the name, `http.server.requests`. The name can be
customized by setting the `spring.metrics.web.server.requests-metrics-name` property. customized by setting the `management.metrics.web.server.requests-metrics-name` property.
@ -962,7 +962,7 @@ controllers. You can also use a helper class, `RouterFunctionMetrics`, to instru
applications that use WebFlux's functional programming model. applications that use WebFlux's functional programming model.
By default, metrics are generated with the name `http.server.requests`. You can customize By default, metrics are generated with the name `http.server.requests`. You can customize
the name by setting the `spring.metrics.web.server.requests-metrics-name` property. the name by setting the `management.metrics.web.server.requests-metrics-name` property.
@ -997,7 +997,7 @@ instrumentation of its requests. `MetricsRestTemplateCustomizer` can be used to
your own `RestTemplate` instances. your own `RestTemplate` instances.
By default, metrics are generated with the name, `http.client.requests`. The name can be By default, metrics are generated with the name, `http.client.requests`. The name can be
customized by setting the `spring.metrics.web.client.requests-metrics-name` property. customized by setting the `management.metrics.web.client.requests-metrics-name` property.
@ -1019,7 +1019,7 @@ Auto-configuration will enable the instrumentation of all available ``DataSource
metric named `data.source`. Data source instrumentation results in gauges representing metric named `data.source`. Data source instrumentation results in gauges representing
the currently active, maximum allowed, and minimum allowed connections in the pool. Each the currently active, maximum allowed, and minimum allowed connections in the pool. Each
of these gauges has a name which is prefixed by `data.source` by default. The prefix can of these gauges has a name which is prefixed by `data.source` by default. The prefix can
be customized by using the `spring.metrics.jdbc.datasource-metric-name` property. be customized by using the `management.metrics.jdbc.datasource-metric-name` property.
Metrics will also be tagged by the name of the `DataSource` computed based on the bean Metrics will also be tagged by the name of the `DataSource` computed based on the bean
name. name.