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

如何让Spring WebClient的OAuth2请求被Micrometer采集指标?

解决方案

要让Micrometer采集到OAuth2客户端凭证流程中获取token的请求指标,核心思路是替换DefaultClientCredentialsTokenResponseClient内部默认创建的RestTemplate,改用由RestTemplateBuilder生成的、自带Micrometer埋点的实例。具体步骤如下:

1. 定义带指标的RestTemplate

利用Spring Boot自动配置的RestTemplateBuilder创建RestTemplate,它会自动添加Micrometer的MetricsClientHttpRequestInterceptor,实现请求指标采集:

@Bean
public RestTemplate oauth2TokenRestTemplate(RestTemplateBuilder restTemplateBuilder) {
    return restTemplateBuilder.build();
}

2. 自定义TokenResponseClient

创建DefaultClientCredentialsTokenResponseClient实例,并将上面的RestTemplate注入进去:

@Bean
public ClientCredentialsTokenResponseClient clientCredentialsTokenResponseClient(RestTemplate oauth2TokenRestTemplate) {
    DefaultClientCredentialsTokenResponseClient tokenResponseClient = new DefaultClientCredentialsTokenResponseClient();
    tokenResponseClient.setRestOperations(oauth2TokenRestTemplate);
    return tokenResponseClient;
}

3. 配置OAuth2授权客户端管理器

将自定义的TokenResponseClient关联到客户端凭证授权流程中,确保WebClient在获取token时使用这个带指标的客户端:

@Bean
public OAuth2AuthorizedClientManager authorizedClientManager(
        ClientRegistrationRepository clientRegistrationRepository,
        OAuth2AuthorizedClientRepository authorizedClientRepository,
        ClientCredentialsTokenResponseClient tokenResponseClient) {

    OAuth2AuthorizedClientProvider provider = OAuth2AuthorizedClientProviderBuilder.builder()
            .clientCredentials(config -> config.tokenResponseClient(tokenResponseClient))
            .build();

    DefaultOAuth2AuthorizedClientManager manager = new DefaultOAuth2AuthorizedClientManager(
            clientRegistrationRepository, authorizedClientRepository);
    manager.setAuthorizedClientProvider(provider);

    return manager;
}

验证指标

完成配置后,启动应用并发起第三方服务请求,访问/actuator/metrics/http.client.requests即可看到获取token的请求指标,其中会包含对应OAuth2授权服务器的请求URI、状态码等维度信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:30:39