求Python获取Grafana已配置告警列表的示例代码
获取Grafana已配置告警列表的Python示例代码
你可以通过Grafana官方API获取已配置的告警规则列表,以下是适配Grafana 8.x及以上版本的Python示例(该版本启用了统一告警系统,API端点较旧版本有调整):
首先确保安装requests库:
pip install requests
示例代码:
import requests # 配置你的Grafana实例信息 GRAFANA_URL = "http://your-grafana-address:3000" API_KEY = "your-grafana-api-key" # 需要具备读取告警规则的权限 # 构建请求头 headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # Grafana 8+ 版本的告警规则API端点 api_endpoint = f"{GRAFANA_URL}/api/v1/provisioning/alert-rules" try: # 发送GET请求获取告警列表 response = requests.get(api_endpoint, headers=headers) response.raise_for_status() # 自动捕获HTTP请求错误 # 解析响应数据 alert_rules = response.json() # 输出告警核心信息(可按需调整输出字段) print("已配置的告警规则列表:") for rule in alert_rules: print(f"告警ID: {rule['id']}, 名称: {rule['title']}, 当前状态: {rule['state']}") except requests.exceptions.RequestException as e: print(f"请求失败: {e}")
关键说明:
- API权限:你的API密钥需要拥有
alerting:rules:read权限,否则会返回权限不足的错误 - 版本兼容:若使用Grafana 7.x及更早版本,需改用旧告警系统的API端点
/api/alerts,但旧系统已被官方弃用,建议升级至新版本 - 扩展字段:返回的告警规则包含更多细节(如所属文件夹、告警表达式、关联通知策略等),可从
rule字典中提取所需字段
内容的提问来源于stack exchange,提问作者Junior
相关产品推荐
相关产品推荐

