手动创建 WebClient 时,Prometheus 端点中的 Http 客户端指标丢失。
下面的代码能够生成预期的 http 客户端指标,如下所示,
@Autowired
WebClient.Builder webClientBuilder;
@GetMapping("client")
public Mono<String> getClientData() {
return webClientBuilder.baseUrl("http://localhost:8080").build().get().retrieve().bodyToMono(String.class);
}
**Prometheus Metrics**
http_client_requests_seconds_count{clientName="localhost",method="GET",metric1="firstmetric",metric2="secondmetric",outcome="CLIENT_ERROR",status="404",uri="/",} 1.0
http_client_requests_seconds_sum{clientName="localhost",method="GET",metric1="firstmetric",metric2="secondmetric",outcome="CLIENT_ERROR",status="404",uri="/",} 0.2275663
如下所示手动创建 WebClient.Builder 时,Prometheus 端点缺少预期的指标(如上所示)。
@GetMapping("client")
public Mono<String> getClientData() {
return WebClient.builder().baseUrl("http://localhost:8080").build().get().retrieve().bodyToMono(String.class);
}
是否有任何解决方案可以在不自动连接 WebClient 或 WebClient 构建器的情况下获取指标(已探索过 MetricsWebClientFilterFunction,但在最新版本的 Spring Boot 中似乎已弃用)?