Polish "Allow configuration of auto-timed metrics"
Closes gh-15988
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
package org.springframework.boot.actuate.autoconfigure.metrics.web.client;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.Timer;
|
||||
import io.micrometer.core.instrument.distribution.HistogramSnapshot;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -100,6 +102,24 @@ public class RestTemplateMetricsConfigurationTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autoTimeRequestsCanBeConfigured() {
|
||||
this.contextRunner.withPropertyValues(
|
||||
"management.metrics.web.client.request.autotime.enabled=true",
|
||||
"management.metrics.web.client.request.autotime.percentiles=0.5,0.7",
|
||||
"management.metrics.web.client.request.autotime.percentiles-histogram=true")
|
||||
.run((context) -> {
|
||||
MeterRegistry registry = getInitializedMeterRegistry(context);
|
||||
Timer timer = registry.get("http.client.requests").timer();
|
||||
HistogramSnapshot snapshot = timer.takeSnapshot();
|
||||
assertThat(snapshot.percentileValues()).hasSize(2);
|
||||
assertThat(snapshot.percentileValues()[0].percentile())
|
||||
.isEqualTo(0.5);
|
||||
assertThat(snapshot.percentileValues()[1].percentile())
|
||||
.isEqualTo(0.7);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void backsOffWhenRestTemplateBuilderIsMissing() {
|
||||
new ApplicationContextRunner().with(MetricsRun.simple())
|
||||
|
||||
@@ -19,6 +19,8 @@ package org.springframework.boot.actuate.autoconfigure.metrics.web.client;
|
||||
import java.time.Duration;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.Timer;
|
||||
import io.micrometer.core.instrument.distribution.HistogramSnapshot;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -101,6 +103,24 @@ public class WebClientMetricsConfigurationTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autoTimeRequestsCanBeConfigured() {
|
||||
this.contextRunner.withPropertyValues(
|
||||
"management.metrics.web.client.request.autotime.enabled=true",
|
||||
"management.metrics.web.client.request.autotime.percentiles=0.5,0.7",
|
||||
"management.metrics.web.client.request.autotime.percentiles-histogram=true")
|
||||
.run((context) -> {
|
||||
MeterRegistry registry = getInitializedMeterRegistry(context);
|
||||
Timer timer = registry.get("http.client.requests").timer();
|
||||
HistogramSnapshot snapshot = timer.takeSnapshot();
|
||||
assertThat(snapshot.percentileValues()).hasSize(2);
|
||||
assertThat(snapshot.percentileValues()[0].percentile())
|
||||
.isEqualTo(0.5);
|
||||
assertThat(snapshot.percentileValues()[1].percentile())
|
||||
.isEqualTo(0.7);
|
||||
});
|
||||
}
|
||||
|
||||
private MeterRegistry getInitializedMeterRegistry(
|
||||
AssertableApplicationContext context) {
|
||||
WebClient webClient = mockWebClient(context.getBean(WebClient.Builder.class));
|
||||
|
||||
@@ -102,7 +102,7 @@ public class WebFluxMetricsAutoConfigurationTests {
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class))
|
||||
.withUserConfiguration(TestController.class)
|
||||
.withPropertyValues(
|
||||
"management.metrics.web.server.request.auto-time.enabled=false")
|
||||
"management.metrics.web.server.request.autotime.enabled=false")
|
||||
.run((context) -> {
|
||||
MeterRegistry registry = getInitializedMeterRegistry(context);
|
||||
assertThat(registry.find("http.server.requests").meter()).isNull();
|
||||
|
||||
@@ -141,14 +141,14 @@ public class WebMvcMetricsAutoConfigurationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autoTimeRequestsDefaultValues() {
|
||||
public void autoTimeRequestsCanBeConfigured() {
|
||||
this.contextRunner.withUserConfiguration(TestController.class)
|
||||
.withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class,
|
||||
WebMvcAutoConfiguration.class))
|
||||
.withPropertyValues(
|
||||
"management.metrics.web.server.request.auto-time.enabled=true",
|
||||
"management.metrics.web.server.request.auto-time.default-percentiles=0.5,0.7",
|
||||
"management.metrics.web.server.request.auto-time.default-histogram=true")
|
||||
"management.metrics.web.server.request.autotime.enabled=true",
|
||||
"management.metrics.web.server.request.autotime.percentiles=0.5,0.7",
|
||||
"management.metrics.web.server.request.autotime.percentiles-histogram=true")
|
||||
.run((context) -> {
|
||||
MeterRegistry registry = getInitializedMeterRegistry(context);
|
||||
Timer timer = registry.get("http.server.requests").timer();
|
||||
|
||||
Reference in New Issue
Block a user