use of io.micrometer.core.instrument.Timer.Builder 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();
}
use of io.micrometer.core.instrument.Timer.Builder in project spring-boot by spring-projects.
the class AutoTimer method builder.
/**
* Factory method to create a new {@link Builder Timer.Builder} with auto-timer
* settings {@link #apply(Timer.Builder) applied}.
* @param supplier the builder supplier
* @return a new builder instance with auto-settings applied
*/
default Timer.Builder builder(Supplier<Timer.Builder> supplier) {
Timer.Builder builder = supplier.get();
apply(builder);
return builder;
}
Aggregations