通过执行器监控服务下游API调用

时间:2019-08-06 07:06:42

标签: spring-boot webclient prometheus spring-webflux

我正在使用spring-Webflux并使用webclient从服务中发出http请求,现在我想监视服务中的下游API调用,如何避免在API中记录变量,而在Prometheous中记录请求uri时获取调用。

Java代码

final MultiValueMap<String, String> queryParamsMap = new LinkedMultiValueMap<>();
 queryParamsMap.put("qParam1", Arrays.asList("1223"));
 queryParamsMap.put("qParam2", Arrays.asList("2422"));
 Integer userId = 123;

 Mono<R> responseModelMono = webClient
                .get()
                .uri(uriBuilder -> uriBuilder.path("v1/test/{userId}").queryParams(queryParamsMap).build(userId))
                .accept(MediaType.APPLICATION_JSON)
                .retrieve()
                .bodyToMono(ResponseModel)
;

执行器/ prometheous Log

# TYPE http_client_requests_seconds summary
http_client_requests_seconds_count{clientName="xyz.com",method="GET",status="200",uri="/v1/test/123",} 1.0
http_client_requests_seconds_sum{clientName="xyz.com",method="GET",status="200",uri="/v1/test/123",} 0.389968209

在这里,我希望URI应该是静态的,并且应该像

http_client_requests_seconds_count{clientName="xyz.com",method="GET",status="200",uri="/v1/test/{userId}",} 1.0
http_client_requests_seconds_sum{clientName="xyz.com",method="GET",status="200",uri="/v1/test/{userId}",}0.389968209

在这里将为您提供任何帮助。

0 个答案:

没有答案