如何从自定义 Webclient Builder 获取 webflux webClient 指标

Posted

技术标签:

【中文标题】如何从自定义 Webclient Builder 获取 webflux webClient 指标【英文标题】:How to get webflux webClient metrics from custom Webclient Builder 【发布时间】:2020-08-17 10:33:53 【问题描述】:

我创建了一个自定义 Webclient 构建器,而不是注入默认构建器。

@Configuration
public class WebClientConfig() 

   @Bean(name = "myWebClientBuilder")
   public Webclient.Builder customBuilder() 
      return WebClient.builder();
   


我有多个服务,我使用这个 bean myWebClientBuulder 并使用 ExchangeFilterFunction 链进行进一步定制。

这可能不是使用WebClient 的推荐方式,但我想了解一下是否有办法根据此配置从Webclient 获取下游呼叫指标。

执行器端点:actuator/metrics/http.client.requests

【问题讨论】:

【参考方案1】:

Spring Boot 自动配置的WebClient.Builder 比自定义版本强大得多。

我尝试在WebClientConfig() 中配置自定义构建器,但它开始像WebClientAutoConfiguration 的复制版本一样构建。我最终选择了 Spring Boot 自动配置 WebClient.Builder bean。

如果有帮助,您可以研究WebClientAutoConfiguration 如何尝试配置 webClient 定制器。对于指标,它将是 MetricsWebClientCustomizer

【讨论】:

以上是关于如何从自定义 Webclient Builder 获取 webflux webClient 指标的主要内容,如果未能解决你的问题,请参考以下文章

WebClient 实现 - 执行这段代码“WebClient.builder().build()”时出现错误

在不丢失 Spring Jackson 配置的情况下设置 WebClient.Builder.exchangeStrategies()

Spring WebFlux WebClient 构建器设置请求正文

WebClient - 如何获取请求正文?

ServiceImpl 构造函数中的 Spring Boot WebClient Builder 初始化

WebClient - 添加 defaultHeaders