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 59101103d26..96f01013da3 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 1d20bc228cb..ae4e4fe02cc 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 c1dca191526..dc66cc74cac 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 91c3b7e72d4..bd498905a34 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 14297da80e8..ea3b65d3d90 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