From ce2346b0878ca2a0ff77922206a1a60149aed46e Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 10 Dec 2015 15:37:10 +0100 Subject: [PATCH] Reintroduce endpoints.metrics.filter.enabled Commit 8c14009 removed the endpoints.metrics.filter.enabled property so that endpoints.metrics.enabled is used for both disabling the endpoint and the servlet filter that records interactions. This was an unfortunate decision as it was no longer possible to only disable the servlet filter. The endpoints.metrics.filter.enabled property has therefore been restored. Closes gh-4365 --- .../autoconfigure/MetricFilterAutoConfiguration.java | 2 +- .../boot/actuate/endpoint/MetricsEndpoint.java | 4 ++-- .../META-INF/additional-spring-configuration-metadata.json | 6 ++++++ .../autoconfigure/MetricFilterAutoConfigurationTests.java | 2 +- .../src/main/asciidoc/appendix-application-properties.adoc | 1 + 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfiguration.java index 59101103d2..96f01013da 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfiguration.java @@ -46,7 +46,7 @@ import org.springframework.web.servlet.HandlerMapping; @ConditionalOnClass({ Servlet.class, ServletRegistration.class, OncePerRequestFilter.class, HandlerMapping.class }) @AutoConfigureAfter(MetricRepositoryAutoConfiguration.class) -@ConditionalOnProperty(name = "endpoints.metrics.enabled", matchIfMissing = true) +@ConditionalOnProperty(name = "endpoints.metrics.filter.enabled", matchIfMissing = true) public class MetricFilterAutoConfiguration { @Autowired diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/MetricsEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/MetricsEndpoint.java index 1d20bc228c..ae4e4fe02c 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/MetricsEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/MetricsEndpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2014 the original author or authors. + * Copyright 2012-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,7 +33,7 @@ import org.springframework.util.Assert; * * @author Dave Syer */ -@ConfigurationProperties(prefix = "endpoints.metrics", ignoreUnknownFields = false) +@ConfigurationProperties(prefix = "endpoints.metrics") public class MetricsEndpoint extends AbstractEndpoint> { private final List publicMetrics; diff --git a/spring-boot-actuator/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-actuator/src/main/resources/META-INF/additional-spring-configuration-metadata.json index c1dca19152..dc66cc74ca 100644 --- a/spring-boot-actuator/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-actuator/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -17,6 +17,12 @@ "sourceType": "org.springframework.boot.actuate.endpoint.EnvironmentEndpoint", "description": "Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions." }, + { + "name": "endpoints.metrics.filter.enabled", + "type": "java.lang.Boolean", + "description": "Enable the metrics servlet filter.", + "defaultValue": true + }, { "name": "info", "type": "java.util.Map", diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfigurationTests.java index 91c3b7e72d..bd498905a3 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/MetricFilterAutoConfigurationTests.java @@ -180,7 +180,7 @@ public class MetricFilterAutoConfigurationTests { @Test public void skipsFilterIfPropertyDisabled() throws Exception { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - EnvironmentTestUtils.addEnvironment(context, "endpoints.metrics.enabled:false"); + EnvironmentTestUtils.addEnvironment(context, "endpoints.metrics.filter.enabled:false"); context.register(Config.class, MetricFilterAutoConfiguration.class); context.refresh(); assertThat(context.getBeansOfType(Filter.class).size(), equalTo(0)); diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 14297da80e..ea3b65d3d9 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -547,6 +547,7 @@ content into your application; rather pick only the properties that you need. endpoints.metrics.id=metrics endpoints.metrics.sensitive=true endpoints.metrics.enabled=true + endpoints.metrics.filter.enabled=true # Enable the metrics servlet filter. endpoints.shutdown.id=shutdown endpoints.shutdown.sensitive=true endpoints.shutdown.enabled=false