Ensure that metrics and observation properties are enabled
Closes gh-32676
This commit is contained in:
parent
3ca5c7ff5b
commit
4dfd770406
|
@ -32,6 +32,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
|
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
|
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
@ -53,6 +54,7 @@ import org.springframework.core.annotation.Order;
|
||||||
@ConditionalOnClass(Observation.class)
|
@ConditionalOnClass(Observation.class)
|
||||||
@ConditionalOnBean(ObservationRegistry.class)
|
@ConditionalOnBean(ObservationRegistry.class)
|
||||||
@Import({ RestTemplateObservationConfiguration.class, WebClientObservationConfiguration.class })
|
@Import({ RestTemplateObservationConfiguration.class, WebClientObservationConfiguration.class })
|
||||||
|
@EnableConfigurationProperties({ MetricsProperties.class, ObservationProperties.class })
|
||||||
public class HttpClientObservationsAutoConfiguration {
|
public class HttpClientObservationsAutoConfiguration {
|
||||||
|
|
||||||
@Configuration(proxyBeanMethods = false)
|
@Configuration(proxyBeanMethods = false)
|
||||||
|
|
|
@ -57,7 +57,7 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat
|
||||||
@SuppressWarnings({ "deprecation", "removal" })
|
@SuppressWarnings({ "deprecation", "removal" })
|
||||||
class RestTemplateObservationConfigurationTests {
|
class RestTemplateObservationConfigurationTests {
|
||||||
|
|
||||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().with(MetricsRun.simple())
|
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||||
.withBean(ObservationRegistry.class, TestObservationRegistry::create)
|
.withBean(ObservationRegistry.class, TestObservationRegistry::create)
|
||||||
.withConfiguration(AutoConfigurations.of(ObservationAutoConfiguration.class,
|
.withConfiguration(AutoConfigurations.of(ObservationAutoConfiguration.class,
|
||||||
RestTemplateAutoConfiguration.class, HttpClientObservationsAutoConfiguration.class));
|
RestTemplateAutoConfiguration.class, HttpClientObservationsAutoConfiguration.class));
|
||||||
|
@ -118,22 +118,23 @@ class RestTemplateObservationConfigurationTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void afterMaxUrisReachedFurtherUrisAreDenied(CapturedOutput output) {
|
void afterMaxUrisReachedFurtherUrisAreDenied(CapturedOutput output) {
|
||||||
this.contextRunner.withPropertyValues("management.metrics.web.client.max-uri-tags=2").run((context) -> {
|
this.contextRunner.with(MetricsRun.simple()).withPropertyValues("management.metrics.web.client.max-uri-tags=2")
|
||||||
|
.run((context) -> {
|
||||||
|
|
||||||
RestTemplate restTemplate = context.getBean(RestTemplateBuilder.class).build();
|
RestTemplate restTemplate = context.getBean(RestTemplateBuilder.class).build();
|
||||||
MockRestServiceServer server = MockRestServiceServer.createServer(restTemplate);
|
MockRestServiceServer server = MockRestServiceServer.createServer(restTemplate);
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
server.expect(requestTo("/test/" + i)).andRespond(withStatus(HttpStatus.OK));
|
server.expect(requestTo("/test/" + i)).andRespond(withStatus(HttpStatus.OK));
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
restTemplate.getForObject("/test/" + i, String.class);
|
restTemplate.getForObject("/test/" + i, String.class);
|
||||||
}
|
}
|
||||||
TestObservationRegistry registry = context.getBean(TestObservationRegistry.class);
|
TestObservationRegistry registry = context.getBean(TestObservationRegistry.class);
|
||||||
TestObservationRegistryAssert.assertThat(registry);
|
TestObservationRegistryAssert.assertThat(registry);
|
||||||
// TODO: check observation count for name
|
// TODO: check observation count for name
|
||||||
assertThat(output).contains("Reached the maximum number of URI tags for 'http.client.requests'.")
|
assertThat(output).contains("Reached the maximum number of URI tags for 'http.client.requests'.")
|
||||||
.contains("Are you using 'uriVariables'?");
|
.contains("Are you using 'uriVariables'?");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue