Search in sources :

Example 1 with AutoTimer

use of org.springframework.boot.actuate.metrics.AutoTimer in project spring-boot by spring-projects.

the class MetricsRestTemplateCustomizerTests method whenAutoTimingIsDisabledUriTemplateHandlerDoesNotCaptureUris.

@Test
void whenAutoTimingIsDisabledUriTemplateHandlerDoesNotCaptureUris() {
    AtomicBoolean enabled = new AtomicBoolean();
    AutoTimer autoTimer = new AutoTimer() {

        @Override
        public boolean isEnabled() {
            return enabled.get();
        }

        @Override
        public void apply(Builder builder) {
        }
    };
    RestTemplate restTemplate = new RestTemplateBuilder(new MetricsRestTemplateCustomizer(this.registry, new DefaultRestTemplateExchangeTagsProvider(), "http.client.requests", autoTimer)).build();
    MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
    mockServer.expect(MockRestRequestMatchers.requestTo("/first/123")).andExpect(MockRestRequestMatchers.method(HttpMethod.GET)).andRespond(MockRestResponseCreators.withSuccess("OK", MediaType.APPLICATION_JSON));
    mockServer.expect(MockRestRequestMatchers.requestTo("/second/456")).andExpect(MockRestRequestMatchers.method(HttpMethod.GET)).andRespond(MockRestResponseCreators.withSuccess("OK", MediaType.APPLICATION_JSON));
    assertThat(restTemplate.getForObject("/first/{id}", String.class, 123)).isEqualTo("OK");
    assertThat(this.registry.find("http.client.requests").timer()).isNull();
    enabled.set(true);
    assertThat(restTemplate.getForObject(URI.create("/second/456"), String.class)).isEqualTo("OK");
    this.registry.get("http.client.requests").tags("uri", "/second/456").timer();
    this.mockServer.verify();
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AutoTimer(org.springframework.boot.actuate.metrics.AutoTimer) RestTemplateBuilder(org.springframework.boot.web.client.RestTemplateBuilder) Builder(io.micrometer.core.instrument.Timer.Builder) RestTemplateBuilder(org.springframework.boot.web.client.RestTemplateBuilder) RestTemplate(org.springframework.web.client.RestTemplate) MockRestServiceServer(org.springframework.test.web.client.MockRestServiceServer) Test(org.junit.jupiter.api.Test)

Aggregations

Builder (io.micrometer.core.instrument.Timer.Builder)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Test (org.junit.jupiter.api.Test)1 AutoTimer (org.springframework.boot.actuate.metrics.AutoTimer)1 RestTemplateBuilder (org.springframework.boot.web.client.RestTemplateBuilder)1 MockRestServiceServer (org.springframework.test.web.client.MockRestServiceServer)1 RestTemplate (org.springframework.web.client.RestTemplate)1