【问题标题】:create or update a panel in Grafana using Python使用 Python 在 Grafana 中创建或更新面板
【发布时间】:2021-11-08 16:16:31
【问题描述】:

我有一个名为“server-plots”的仪表板,还有一个名为“master-plots”的仪表板。 “master-plots”下的面板是最新的图表,我想将“master-plots”仪表板中的新面板也添加到“server-plots”,所有内容都使用 Python 代码(不是手动或使用 curl)。 我可以使用 Grafana GET API 以 JSON 格式以编程方式备份​​这些图。我想在“master-plots”仪表板 JSON 中找到新面板,并将它们添加到“server-plots”仪表板中,全部使用 Python。我找不到任何 API 来做到这一点。知道如何实现吗?

【问题讨论】:

    标签: grafana grafana-api


    【解决方案1】:

    我实现这一点的方法是将master-plots 的备份作为 JSON 使用:

    /api/dashboards/uid/<uid of the dashboard>
    

    然后将它与server-plots 中的比较(类似地),然后用差异更新server-plots JSON(基本上用master-plots JSON 替换server-plots JSON),最后将其写入以下使用POST 方法:

    /api/dashboards/db/
    

    这里要考虑的一件事:写入server-plots 的新JSON 应该有不同的uidoverwrite=True

    --snip--
    f = open(myjsonfile,)  # the updated JSON of server-plots
    data = json.load(f)
    data["dashboard"]["id"] = None
    data["overwrite"] = True
    data["folderId"] = 123 # this is the folder ID of the server-plots
    data["dashboard"]["uid"] = <logic to generate randum alpha-num>
    url = "https://mygrafanaurl.com/api/dashboards/db"
    headers = {'Authorization': 'auth',   'Content-Type': 'application/json' }
    response = requests.request("POST", url, headers=headers, data=json.dumps(data))
    

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 2023-01-20
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 2021-07-31
      • 1970-01-01
      相关资源
      最近更新 更多