You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring 6 WebClient缺失Micrometer Histogram指标如何解决?

Spring 6 WebClient 获取延迟分桶指标(http_client_requests_seconds_bucket)的解决方案

在Spring 6搭配Micrometer 1.10.x版本时,默认不再自动生成带le标签的http_client_requests_seconds_bucket分桶指标,需通过以下步骤配置开启:

1. 配置文件开启直方图与自定义分桶阈值

在application.yml或application.properties中添加Metrics分布配置,显式开启HTTP客户端请求的直方图模式,并指定业务需要的延迟分桶:

management:
  metrics:
    distribution:
      # 开启直方图模式,生成带le标签的bucket指标
      percentiles-histogram:
        http.client.requests: true
      # 自定义延迟分桶阈值,可根据实际需求调整
      sla:
        http.client.requests: 10ms, 50ms, 100ms, 200ms, 500ms, 1s, 2s, 5s

2. 确保WebClient绑定Metrics过滤器

如果使用自动装配的WebClient.Builder构建实例,Spring默认已注入MetricsWebClientFilterFunction,无需额外配置。若为自定义WebClient,需手动添加该过滤器以绑定指标:

@Bean
public WebClient webClient(WebClient.Builder builder, MeterRegistry meterRegistry) {
    return builder
            .filter(new MetricsWebClientFilterFunction(
                    meterRegistry,
                    new DefaultWebClientExchangeTagsProvider(),
                    "http.client.requests",
                    AutoTimer.ENABLED
            ))
            .build();
}

3. 验证指标生成

发起WebClient请求后,可通过Actuator的/actuator/metrics/http.client.requests端点查看指标详情,或从监控系统(如Prometheus)直接获取http_client_requests_seconds_bucket指标,此时该指标会包含le标签及对应分桶的延迟计数。

差异原因说明

Micrometer 1.10.x版本默认关闭了HTTP客户端指标的直方图模式,而1.9.x版本默认开启,这是新旧版本间指标差异的核心原因。

内容的提问来源于stack exchange,提问作者JustAnotherDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:56:05