2015-09-04 21 views
1

我想創建一個腳本化的儀表板,它將一個OpenTSDB度量作爲數據源。在Grafana網站上,我找不到任何示例。我希望我能加入一些這樣一行:以opentsdb爲源的Grafana中的腳本化儀表板

metric = 'my.metric.name' 

成JavaScript代碼,而不是我可以即時訪問儀表板。

var rows = 1; 
var seriesName = 'argName'; 

if(!_.isUndefined(ARGS.rows)) { 
    rows = parseInt(ARGS.rows, 10); 
} 

if(!_.isUndefined(ARGS.name)) { 
    seriesName = ARGS.name; 
} 

for (var i = 0; i < rows; i++) { 

    dashboard.rows.push({ 
    title: 'Scripted Graph ' + i, 
    height: '300px', 
    panels: [ 
     { 
     title: 'Events', 
     type: 'graph', 
     span: 12, 
     fill: 1, 
     linewidth: 2, 
     targets: [ 
      { 
      'target': "randomWalk('" + seriesName + "')" 
      }, 
      { 
      'target': "randomWalk('random walk2')" 
      } 
     ], 
     } 
    ] 
    }); 

} 

return dashboard; 

回答

3

對不起回答我自己的問題。但我只是想通了,希望在這裏發佈會有利於某人。

腳本在這裏。隨時訪問儀表板: http://grafana_ip:3000/dashboard/script/donkey.js?name=tsdbmetricname

/* global _ */ 

/* 
* Complex scripted dashboard 
* This script generates a dashboard object that Grafana can load. It also takes a number of user 
* supplied URL parameters (in the ARGS variable) 
* 
* Return a dashboard object, or a function 
* 
* For async scripts, return a function, this function must take a single callback function as argument, 
* call this callback function with the dashboard object (look at scripted_async.js for an example) 
*/ 



// accessible variables in this scope 
var window, document, ARGS, $, jQuery, moment, kbn; 

// Setup some variables 
var dashboard; 

// All url parameters are available via the ARGS object 
var ARGS; 

// Intialize a skeleton with nothing but a rows array and service object 
dashboard = { 
    rows : [], 
}; 

// Set a title 
dashboard.title = 'From Shrek'; 

// Set default time 
// time can be overriden in the url using from/to parameters, but this is 
// handled automatically in grafana core during dashboard initialization 
dashboard.time = { 
    from: "now-6h", 
    to: "now" 
}; 

var rows = 1; 
var metricName = 'argName'; 

//if(!_.isUndefined(ARGS.rows)) { 
// rows = parseInt(ARGS.rows, 10); 
//} 

if(!_.isUndefined(ARGS.name)) { 
    metricName = ARGS.name; 
} 

for (var i = 0; i < rows; i++) { 

    dashboard.rows.push({ 
    title: metricName, 
    height: '300px', 
    panels: [ 
     { 
     title: metricName, 
     type: 'graph', 
     span: 12, 
     fill: 1, 
     linewidth: 2, 
     targets: [ 
      { 
       "aggregator": "avg", 
       "downsampleAggregator": "avg", 
       "errors": {}, 
       "metric":ARGS.name, 
       //"metric": "search-engine.relevance.latency.mean", 
       "tags": { 
       "host": "*" 
       } 
      } 
     ], 
     tooltip: { 
      shared: true 
     } 
     } 
    ] 
    }); 
} 


return dashboard; 
+0

您應該將自己的答案標記爲已接受! – Will

+0

如何標記爲已回答? – billtian

+0

點擊答案左上角的複選框:) – Will

相關問題