/* 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)
*/
'use strict';
// 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 : [],
"timezone": "browser",
"editable": false,
"hideControls": true,
};
// Set a title
dashboard.title = 'HOSTKEY';
// 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-1M",
to: "now"
};
var rows = 1;
var seriesName = 'argName';
var serverIP = '
158.255.6.192';
if(!_.isUndefined(ARGS.rows)) {
rows = parseInt(ARGS.rows, 10);
}
if(!_.isUndefined(
ARGS.name)) {
seriesName =
ARGS.name;
}
if(!_.isUndefined(ARGS.serverIP)) {
serverIP = ARGS.serverIP;
}
for (var i = 0; i < rows; i++) {
dashboard.rows.push({
title: 'Chart',
height: '300px',
panels: [
{
title: 'Traffic usage for IP '+serverIP,
type: 'graph',
span: 12,
fill: 1,
linewidth: 2,
"datasource": "Sflowus",
"targets": [
{
"alias": "out",
"dsType": "influxdb",
"groupBy": [],
"measurement": "flows_src",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"bitps"
],
"type": "field"
}
]
],
"tags": [
{
"key": "srcIP",
"operator": "=",
"value": serverIP
}
]
},
{
"alias": "in",
"dsType": "influxdb",
"groupBy": [],
"measurement": "flows_dst",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"bitps"
],
"type": "field"
}
]
],
"tags": [
{
"key": "dstIP",
"operator": "=",
"value": serverIP
}
]
}
],
tooltip: {
shared: false
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
]
});
}
return dashboard;