From 8903c69b19387d9f4112fe4fbde705024951b75a Mon Sep 17 00:00:00 2001 From: Scott Frederick Date: Thu, 11 Nov 2021 14:36:08 -0600 Subject: [PATCH] Avoid exposing time-related task metrics Fixes gh-28535 --- .../metrics/task/TaskExecutorMetricsAutoConfiguration.java | 3 ++- .../task/TaskExecutorMetricsAutoConfigurationTests.java | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfiguration.java index 19bcb5a39afc..f929ac84be7b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.task; +import java.util.Collections; import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; @@ -66,7 +67,7 @@ else if (executor instanceof ThreadPoolTaskScheduler) { private void monitor(MeterRegistry registry, ThreadPoolExecutor threadPoolExecutor, String name) { if (threadPoolExecutor != null) { - ExecutorServiceMetrics.monitor(registry, threadPoolExecutor, name); + new ExecutorServiceMetrics(threadPoolExecutor, name, Collections.emptyList()).bindTo(registry); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfigurationTests.java index 7d3e0c05827c..53093101b19e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/task/TaskExecutorMetricsAutoConfigurationTests.java @@ -21,6 +21,7 @@ import io.micrometer.core.instrument.FunctionCounter; import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.core.instrument.search.MeterNotFoundException; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; @@ -34,6 +35,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; @@ -56,6 +58,8 @@ void taskExecutorUsingAutoConfigurationIsInstrumented() { Collection meters = registry.get("executor.completed").functionCounters(); assertThat(meters).singleElement().satisfies( (meter) -> assertThat(meter.getId().getTag("name")).isEqualTo("applicationTaskExecutor")); + assertThatExceptionOfType(MeterNotFoundException.class) + .isThrownBy(() -> registry.get("executor").timer()); }); } @@ -101,6 +105,8 @@ void taskSchedulerUsingAutoConfigurationIsInstrumented() { Collection meters = registry.get("executor.completed").functionCounters(); assertThat(meters).singleElement() .satisfies((meter) -> assertThat(meter.getId().getTag("name")).isEqualTo("taskScheduler")); + assertThatExceptionOfType(MeterNotFoundException.class) + .isThrownBy(() -> registry.get("executor").timer()); }); }