【问题标题】:Spring Boot Webclient metrics missing in prometheus endpoint普罗米修斯端点中缺少 Spring Boot Webclient 指标
【发布时间】:2020-01-30 06:57:47
【问题描述】:

Prometheus 端点中的 Http 客户端指标在手动创建 WebClient 时丢失。

以下代码能够生成预期的 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 中似乎已弃用)?

【问题讨论】:

    标签: java spring-boot prometheus spring-webclient spring-reactive


    【解决方案1】:

    获得正确检测的首选方法是确实使用 Spring Boot 提供的 WebClient.Builder 实例。

    如果您不希望这样(作为一个单独的问题,也许可以解释为什么会这样选择,也许有一种方法可以解决使您考虑该选择的问题),您实际上应该手动连接 MetricsWebClientFilterFunction in客户。

    我没有看到该课程的任何弃用通知,我错过了什么吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-20
      • 2020-01-10
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 2019-04-11
      相关资源
      最近更新 更多