我正在使用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
在这里将为您提供任何帮助。