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

如何使用Python Requests删除Grafana仪表盘中的面板?

如何通过Grafana API删除仪表盘中的面板

Grafana没有提供直接删除单个面板的API端点,你需要通过更新整个仪表盘配置的方式来移除目标面板,具体步骤如下:

步骤1:获取目标仪表盘的完整配置

先用你已有的GET请求获取仪表盘的全部JSON数据,包含所有面板信息:

import requests

server = "你的Grafana实例地址"
uid = "目标仪表盘的UID"
headers = {"Authorization": "Bearer 你的API令牌"}  # 替换为实际令牌

# 获取仪表盘完整配置
fetch_url = f"{server}/api/dashboards/uid/{uid}"
response = requests.get(fetch_url, headers=headers, verify=False)
dashboard_config = response.json()

步骤2:从配置中移除目标面板

定位到配置中的dashboard['panels']数组,根据面板的id或title筛选掉要删除的面板。如果面板嵌套在分组(row)里,需要遍历dashboard['rows']下的panels数组处理:

# 示例:删除id为5的面板
target_panel_id = 5
# 处理顶层面板
dashboard_config['dashboard']['panels'] = [
    p for p in dashboard_config['dashboard']['panels']
    if p['id'] != target_panel_id
]

# 如果有嵌套在row里的面板,额外处理
if 'rows' in dashboard_config['dashboard']:
    for row in dashboard_config['dashboard']['rows']:
        row['panels'] = [
            p for p in row['panels']
            if p['id'] != target_panel_id
        ]

步骤3:提交更新后的仪表盘配置

用PUT请求将修改后的配置提交回Grafana,注意设置overwrite: true以覆盖现有仪表盘:

update_payload = {
    "dashboard": dashboard_config['dashboard'],
    "folderId": dashboard_config['meta']['folderId'],
    "overwrite": True
}

update_url = f"{server}/api/dashboards/db"
update_response = requests.put(update_url, json=update_payload, headers=headers, verify=False)

# 验证操作结果
if update_response.status_code == 200:
    print("面板删除成功")
else:
    print(f"删除失败:{update_response.json()}")

额外说明

  • 确保你的API令牌拥有编辑仪表盘的权限(最低为Editor角色)
  • 操作前建议备份仪表盘配置,防止误删内容
  • 如果不需要用API,直接在Grafana界面进入仪表盘编辑模式,点击目标面板右上角的下拉菜单选择「Delete」即可完成删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:20:35