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

Prometheus如何缓存OAuth2.0访问令牌实现每小时刷新一次

Prometheus OAuth2 令牌1小时缓存配置实现

Prometheus 内置的 OAuth2 客户端默认自带令牌缓存逻辑,不会每次15秒抓取指标都重新申请令牌:

  • 正常场景下,客户端会自动读取令牌接口返回的expires_in字段作为令牌有效期,在距离过期还有10秒时自动触发刷新,其余抓取请求直接复用内存中缓存的令牌
  • 只有当令牌接口不返回expires_in字段,或是你需要强制固定令牌刷新周期为1小时、忽略授权服务器返回的有效期时,才需要手动添加缓存配置

具体配置方法

在现有配置的oauth2配置块下添加validity_duration参数,指定值为3600s(即1小时)即可,该参数会强制覆盖授权服务器返回的令牌过期时间,让Prometheus将获取到的令牌缓存满1小时后再重新申请。

注意:validity_duration参数要求Prometheus版本 >= 2.44.0,低版本无该配置项,需先升级到对应版本以上。

修改后的完整配置如下:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
    - static_configs:
        - targets: []

rule_files: []

scrape_configs:
  - job_name: "prometheus"
    metrics_path: "/actuator/prometheus"
    static_configs:
      - targets: ["localhost:8080"]
    oauth2:
      client_id: "实际业务的客户端ID"
      client_secret_file: "客户端密钥对应的本地文件路径"
      scopes: []
      token_url: "OAuth2服务的令牌申请接口地址"
      # 强制令牌缓存1小时,到期后才重新申请
      validity_duration: 3600s

效果验证

配置生效后,可以通过两个方式验证缓存是否正常:

  • 查看Prometheus服务日志,正常情况下仅每小时会出现一次向token_url发起请求的记录,不会每15秒抓取时都产生令牌申请日志
  • 查看OAuth2授权服务侧的访问日志,令牌接口的调用频率为1小时1次,和配置的缓存周期一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:57:34