如何通过Grafana API获取分页告警规则列表?适配7.5.17/9.3.X版本
获取Grafana分页告警规则列表的适配方案(兼容7.5.17与9.3.X)
针对Grafana 7.5.17的方案
直接使用官方稳定的告警列表API,该接口原生支持分页:
- 接口地址:
GET /api/alerts - 分页参数:
page(当前页码,从1开始)、perpage(每页条数) - 请求示例:
GET /api/alerts?page=1&perpage=50 - 返回结果包含分页元数据(总告警数、当前页、总页数等),可直接用于分页逻辑。
针对Grafana 9.3.X的方案
由于/api/ruler/grafana/api/v1/rules接口无分页且标记为不稳定,推荐以下两种可行方案:
方案1:利用搜索API+详情接口组合实现分页
- 调用搜索接口筛选告警规则,该接口支持分页:
- 接口地址:
GET /api/search - 参数:
type=alert-rule(指定搜索类型为告警规则)、page(当前页码)、limit(每页条数) - 请求示例:
GET /api/search?type=alert-rule&page=1&limit=50 - 返回结果包含告警规则的基础信息(UID、标题、所属文件夹UID等)
- 接口地址:
- 针对每个返回的规则,调用详情接口获取完整配置:
- 接口地址:
GET /api/ruler/grafana/api/v1/rules/{folderUID}/{ruleUID} - 替换路径中的
{folderUID}和{ruleUID}为搜索结果中对应的字段值
- 接口地址:
方案2:本地分页处理
如果告警规则总量不大,可先一次性拉取全量规则:
- 调用
/api/ruler/grafana/api/v1/rules获取所有规则数据 - 在客户端代码中自行实现分页逻辑(比如根据页码和每页条数截取数据子集)
跨版本兼容注意事项
- 7.5.17优先使用
/api/alerts接口,9.3.X优先采用搜索API组合方案 - 所有API调用需携带具备
Alerting:Read权限的身份凭证(API Key或OAuth令牌)
内容的提问来源于stack exchange,提问作者Ewen Field
相关产品推荐
相关产品推荐

