Remove remaining usages of MetricsRun
This commit is contained in:
committed by
Phillip Webb
parent
e81b34311f
commit
b74460b338
@@ -1,107 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2025 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.actuate.autoconfigure.metrics.test;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.atlas.AtlasMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.datadog.DatadogMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.ganglia.GangliaMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.graphite.GraphiteMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.influx.InfluxMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.jmx.JmxMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.newrelic.NewRelicMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.otlp.OtlpMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.prometheus.PrometheusMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.statsd.StatsdMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.test.context.runner.AbstractApplicationContextRunner;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* Additional metrics configuration and settings that can be applied to a
|
||||
* {@link ApplicationContextRunner} when running a metrics test.
|
||||
*
|
||||
* @author Jon Schneider
|
||||
* @author Phillip Webb
|
||||
*/
|
||||
public final class MetricsRun {
|
||||
|
||||
private static final Set<Class<?>> EXPORT_AUTO_CONFIGURATIONS;
|
||||
|
||||
static {
|
||||
Set<Class<?>> implementations = new LinkedHashSet<>();
|
||||
implementations.add(AtlasMetricsExportAutoConfiguration.class);
|
||||
implementations.add(DatadogMetricsExportAutoConfiguration.class);
|
||||
implementations.add(GangliaMetricsExportAutoConfiguration.class);
|
||||
implementations.add(GraphiteMetricsExportAutoConfiguration.class);
|
||||
implementations.add(InfluxMetricsExportAutoConfiguration.class);
|
||||
implementations.add(JmxMetricsExportAutoConfiguration.class);
|
||||
implementations.add(NewRelicMetricsExportAutoConfiguration.class);
|
||||
implementations.add(OtlpMetricsExportAutoConfiguration.class);
|
||||
implementations.add(PrometheusMetricsExportAutoConfiguration.class);
|
||||
implementations.add(SimpleMetricsExportAutoConfiguration.class);
|
||||
implementations.add(StatsdMetricsExportAutoConfiguration.class);
|
||||
EXPORT_AUTO_CONFIGURATIONS = Collections.unmodifiableSet(implementations);
|
||||
}
|
||||
|
||||
private static final AutoConfigurations AUTO_CONFIGURATIONS = AutoConfigurations.of(MetricsAutoConfiguration.class,
|
||||
CompositeMeterRegistryAutoConfiguration.class);
|
||||
|
||||
private MetricsRun() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a function that configures the run to be limited to the {@code simple}
|
||||
* implementation.
|
||||
* @return the function to apply
|
||||
*/
|
||||
public static <T extends AbstractApplicationContextRunner<?, ?, ?>> Function<T, T> simple() {
|
||||
return limitedTo(SimpleMetricsExportAutoConfiguration.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a function that configures the run to be limited to the specified
|
||||
* implementations.
|
||||
* @param exportAutoConfigurations the export auto-configurations to include
|
||||
* @return the function to apply
|
||||
*/
|
||||
public static <T extends AbstractApplicationContextRunner<?, ?, ?>> Function<T, T> limitedTo(
|
||||
Class<?>... exportAutoConfigurations) {
|
||||
return (contextRunner) -> apply(contextRunner, exportAutoConfigurations);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T extends AbstractApplicationContextRunner<?, ?, ?>> T apply(T contextRunner,
|
||||
Class<?>[] exportAutoConfigurations) {
|
||||
for (Class<?> configuration : exportAutoConfigurations) {
|
||||
Assert.state(EXPORT_AUTO_CONFIGURATIONS.contains(configuration),
|
||||
() -> "Unknown export auto-configuration " + configuration.getName());
|
||||
}
|
||||
return (T) contextRunner.withPropertyValues("management.metrics.use-global-registry=false")
|
||||
.withConfiguration(AUTO_CONFIGURATIONS)
|
||||
.withConfiguration(AutoConfigurations.of(exportAutoConfigurations));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import java.util.List;
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
|
||||
import io.micrometer.core.instrument.observation.MeterObservationHandler;
|
||||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import io.micrometer.observation.Observation;
|
||||
import io.micrometer.observation.Observation.Context;
|
||||
import io.micrometer.observation.ObservationHandler;
|
||||
@@ -35,7 +36,6 @@ import io.micrometer.tracing.handler.TracingObservationHandler;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Answers;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.observation.autoconfigure.ObservationAutoConfiguration;
|
||||
import org.springframework.boot.observation.autoconfigure.ObservationHandlerGrouping;
|
||||
@@ -59,14 +59,15 @@ import static org.mockito.Mockito.mock;
|
||||
*/
|
||||
class ObservabilityAutoConfigurationTests {
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().with(MetricsRun.simple())
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
.withBean(SimpleMeterRegistry.class)
|
||||
.withPropertyValues("management.observations.annotations.enabled=true")
|
||||
.withClassLoader(new FilteredClassLoader("io.micrometer.tracing"))
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(ObservationAutoConfiguration.class, ObservabilityAutoConfiguration.class));
|
||||
|
||||
private final ApplicationContextRunner tracingContextRunner = new ApplicationContextRunner()
|
||||
.with(MetricsRun.simple())
|
||||
.withBean(SimpleMeterRegistry.class)
|
||||
.withPropertyValues("management.observations.annotations.enabled=true")
|
||||
.withUserConfiguration(TracerConfiguration.class)
|
||||
.withConfiguration(
|
||||
@@ -114,7 +115,7 @@ class ObservabilityAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
void supplyMeterHandlerAndGroupingWhenMicrometerCoreAndTracingAreOnClassPathButThereIsNoTracer() {
|
||||
new ApplicationContextRunner().with(MetricsRun.simple())
|
||||
new ApplicationContextRunner().withBean(SimpleMeterRegistry.class)
|
||||
.withPropertyValues("management.observations.annotations.enabled=true")
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(ObservationAutoConfiguration.class, ObservabilityAutoConfiguration.class))
|
||||
|
||||
@@ -31,10 +31,10 @@ import io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter;
|
||||
import io.prometheus.metrics.tracer.common.SpanContext;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.tracing.MicrometerTracingAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.prometheus.PrometheusMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.observation.autoconfigure.ObservationAutoConfiguration;
|
||||
import org.springframework.boot.test.context.FilteredClassLoader;
|
||||
@@ -61,10 +61,11 @@ class PrometheusExemplarsAutoConfigurationTests {
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
.withPropertyValues("management.tracing.sampling.probability=1.0",
|
||||
"management.metrics.distribution.percentiles-histogram.all=true")
|
||||
.with(MetricsRun.limitedTo(PrometheusMetricsExportAutoConfiguration.class))
|
||||
"management.metrics.distribution.percentiles-histogram.all=true",
|
||||
"management.metrics.use-global-registry=false")
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(PrometheusExemplarsAutoConfiguration.class, ObservationAutoConfiguration.class,
|
||||
AutoConfigurations.of(MetricsAutoConfiguration.class, PrometheusMetricsExportAutoConfiguration.class,
|
||||
PrometheusExemplarsAutoConfiguration.class, ObservationAutoConfiguration.class,
|
||||
BraveAutoConfiguration.class, MicrometerTracingAutoConfiguration.class));
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user