如何在Grafana Infinity插件中先获取Bearer Token再调用API?
在Grafana Infinity插件中实现先获取Bearer Token再调用API的流程
方法一:自定义变量+脚本(复用性强)
- 创建自定义变量:
- 进入Grafana「设置」→「变量」,点击「新建变量」
- 类型选「Query」,数据源选择「Infinity」
- 配置Token获取查询:
- 数据源类型选「JSON」,请求方法设为「POST」
- URL填入登录接口地址:
https://serverIpAddress/auth/login - 请求头添加
Content-Type: application/json - 请求体粘贴登录JSON:
{ "username": "userName", "password": "passWord" } - 若使用自签证书,开启「Skip TLS Verify」(对应curl的
--insecure参数) - 响应解析:在「Parser Options」的「JSON Path」中填入
$.data.access_token,仅提取所需的access_token - 设置变量更新频率(如5分钟,根据Token有效期调整),并勾选「Secure」隐藏敏感内容
- 调用目标API:
- 在后续的Infinity查询中,添加请求头
Authorization: Bearer ${你的变量名},变量会自动替换为最新的Token
- 在后续的Infinity查询中,添加请求头
方法二:Infinity链式查询(v2.0+版本支持)
适合不需要复用Token的单次链式请求:
- 新建Infinity查询,类型选择「Chain」
- 第一步(获取Token):
- 配置POST请求到登录接口,参数同方法一
- 进入「Response Transform」,用JSON Path
$.data.access_token提取Token,设置「Store as variable」为token
- 第二步(调用目标API):
- 配置目标API的请求方法、URL及参数
- 添加请求头
Authorization: Bearer {{token}},临时变量token会自动带入
注意事项
- 务必将登录密码存为Grafana安全变量,避免明文泄露
- 调整变量更新频率与Token有效期匹配,防止过期失效
- 自签证书场景下,确保在查询或数据源全局配置中开启跳过TLS验证
内容的提问来源于stack exchange,提问作者chowpay
相关产品推荐
相关产品推荐

