RestTemplate metrics collection join point now returns a value

This commit is contained in:
Jon Schneider
2015-11-11 14:35:32 -08:00
committed by Spencer Gibb
parent 024d9946dc
commit be14074817
3 changed files with 11 additions and 8 deletions

View File

@@ -39,13 +39,13 @@ public class MetricsInterceptorConfiguration {
@ConditionalOnWebApplication
static class MetricsWebResourceConfiguration extends WebMvcConfigurerAdapter {
@Bean
MetricsHandlerInterceptor spectatorMonitoringWebResourceInterceptor() {
MetricsHandlerInterceptor servoMonitoringWebResourceInterceptor() {
return new MetricsHandlerInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(spectatorMonitoringWebResourceInterceptor());
registry.addInterceptor(servoMonitoringWebResourceInterceptor());
}
}

View File

@@ -26,11 +26,11 @@ import org.aspectj.lang.annotation.Aspect;
@Aspect
public class RestTemplateUrlTemplateCapturingAspect {
@Around("execution(* org.springframework.web.client.RestOperations+.*(String, ..))")
void captureUrlTemplate(ProceedingJoinPoint joinPoint) throws Throwable {
Object captureUrlTemplate(ProceedingJoinPoint joinPoint) throws Throwable {
try {
String urlTemplate = (String) joinPoint.getArgs()[0];
RestTemplateUrlTemplateHolder.setRestTemplateUrlTemplate(urlTemplate);
joinPoint.proceed();
return joinPoint.proceed();
}
finally {
RestTemplateUrlTemplateHolder.clear();

View File

@@ -13,7 +13,8 @@
package org.springframework.cloud.netflix.metrics;
import org.junit.Assert;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,8 +63,8 @@ public class MetricsClientHttpRequestInterceptorTests {
MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
mockServer.expect(MockRestRequestMatchers.requestTo("/test/123"))
.andExpect(MockRestRequestMatchers.method(HttpMethod.GET))
.andRespond(MockRestResponseCreators.withSuccess("{\"status\" : \"OK\"}", MediaType.APPLICATION_JSON));
restTemplate.getForObject("/test/{id}", String.class, 123);
.andRespond(MockRestResponseCreators.withSuccess("OK", MediaType.APPLICATION_JSON));
String s = restTemplate.getForObject("/test/{id}", String.class, 123);
MonitorConfig.Builder builder = new MonitorConfig.Builder("metricName")
.withTag("method", "GET")
@@ -73,7 +74,9 @@ public class MetricsClientHttpRequestInterceptorTests {
BasicTimer timer = servoMonitorCache.getTimer(builder.build());
Assert.assertEquals(1L, (long) timer.getCount());
assertEquals(1L, (long) timer.getCount());
assertEquals("OK", s);
mockServer.verify();
}
}