【问题标题】:Is it possible to add a scripted dashboard to the Home "Dashboards" list?是否可以将脚本仪表板添加到主页“仪表板”列表中?
【发布时间】:2015-11-22 04:45:09
【问题描述】:

我为 Grafana v2.1.2 创建了一个脚本仪表板,并希望将其添加到主页仪表板列表中,但是没有看到使用 GUI 仪表板设置的方法。

有可能吗?如果是这样,是否有一些关于如何执行此操作的文档或示例?

【问题讨论】:

  • 你在寻找类似于grafana.wikimedia.org的东西吗?
  • 这看起来像一个完全自定义的仪表板。我想知道如何简单地将我的仪表板脚本添加到主页的默认“仪表板”列表中。

标签: scripting dashboard grafana


【解决方案1】:

这似乎是 grafana 的一个长期存在的问题,并且如 https://github.com/grafana/grafana/issues/4145 中所述不受支持

但幸运的是,https://github.com/anryko/grafana-influx-dashboard/issues/54 中描述了一种解决方法

您必须创建一个新的 grafana 仪表板。在仪表板设置中,您应该将其重命名为“脚本仪表板”。然后添加一个“html”类型的“text”行。然后到该行的文本字段,您需要将此代码粘贴到:

<meta http-equiv="refresh" content="1;url=/dashboard/script/getdash.js">
<script type="text/javascript">window.location.href = "/dashboard/script/getdash.js"</script>

完成此操作后,您必须保存仪表板。而已。现在,您可以从 Grafana 主屏幕选择新创建的“脚本仪表板”,它会自动将您重定向到实际的 GetDash 仪表板。

在 Grafana 4 中,你在一行中添加一个文本面板并将模式从Markup 切换到HTML,然后在上面插入 sn-p。

此解决方案的缺点是此类仪表板不能在播放列表中使用(将重定向到播放列表的 url)。

注意 URL(特别是如果您在 /grafana 路径下运行 grafana),因为此重定向仪表板无法从 Web UI 中删除,您需要为此使用 API 或(如上述问题所述)

新建一个同名的。然后在保存操作时,它会让你覆盖旧的。

更新:Grafana 6 不再允许解决方法:(

【讨论】:

    【解决方案2】:

    是的,这是可能的。但是没有直接的方法来实现这个特性。 Grafana 允许仪表板 API 创建或更新仪表板。您需要修改默认脚本仪表板对象以适应此仪表板 API 以及脚本仪表板。

    以下是默认的脚本仪表板:

    'use strict';
    var window, document, ARGS, $, jQuery, moment, kbn;
    var dashboard = {
      rows : [],
    };
    dashboard.title = 'Scripted Dashboard';
    dashboard.time = {
      from: "now-6h",
      to: "now"
    };
    
    dashboard.rows.push({
        title: 'Chart',
        height: '300px',
        panels: [
          {
            title: 'Events',
            type: 'graph'
          }]
      });
    
    
    return dashboard;
    
    

    修改脚本达到目的:

    'use strict' ;
    var window, document, ARGS, $, jQuery, moment, kbn;
    var ScriptedDashboard= {
            dashboard :{},
            overwrite: true
    };
    
    /* Create a simple dashboard*/
    function createDashboard(dashboard){
            dashboard.title = 'Grafana Dashboard';
            dashboard.time = {
                    from : "now-6h",
                    to : "now"
            };
            dashboard.id= null;
            dashboard.uid= null;
    }
    
    function sendHTTPData(method, url, data){
        var httpRequest = new XMLHttpRequest();
        httpRequest.open( method,url , true);
        httpRequest.setRequestHeader("Content-Type", "application/json");
        httpRequest.setRequestHeader("Access-Control-Allow-Origin","*");
        var reqData = JSON.stringify(data);
        httpRequest.send(reqData);
    }
    
    createDashboard(ScriptedDashboard.dashboard);
    sendHTTPData("POST", "http://192.168.0.104:3000/api/dashboards/db", ScriptedDashboard);
    
    return ScriptedDashboard.dashboard;
    
    

    查看上述脚本仪表板之间的区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-23
      • 2018-10-10
      • 1970-01-01
      • 2020-08-16
      • 2013-12-12
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      相关资源
      最近更新 更多