diff --git a/src/app/dashboards/scripted.js b/src/app/dashboards/scripted.js new file mode 100644 index 00000000000..653ba4a043c --- /dev/null +++ b/src/app/dashboards/scripted.js @@ -0,0 +1,74 @@ +/* global _ */ + +/* + * Complex scripted dashboard + * This script generates a dashboard object that Grafana can load. It also takes a number of user + * supplied URL parameters (int ARGS variable) + * + */ + +'use strict'; + +// Setup some variables +var dashboard, _d_timespan; + +// All url parameters are available via the ARGS object +var ARGS; + +// Set a default timespan if one isn't specified +_d_timespan = '1d'; + +// Intialize a skeleton with nothing but a rows array and service object +dashboard = { + rows : [], + services : {} +}; + +// Set a title +dashboard.title = 'Scripted dash'; +dashboard.services.filter = { + time: { + from: "now-"+(ARGS.from || _d_timespan), + to: "now" + } +}; + +var rows = 1; +var name = 'argName'; + +if(!_.isUndefined(ARGS.rows)) { + rows = parseInt(ARGS.rows, 10); +} + +if(!_.isUndefined(ARGS.name)) { + name = ARGS.name; +} + +for (var i = 0; i < rows; i++) { + + dashboard.rows.push({ + title: 'Chart', + height: '300px', + panels: [ + { + title: 'Events', + type: 'graphite', + span: 12, + fill: 1, + linewidth: 2, + targets: [ + { + 'target': "randomWalk('" + name + "')" + }, + { + 'target': "randomWalk('random walk2')" + } + ], + } + ] + }); + +} + +// Now return the object and we're good! +return dashboard; \ No newline at end of file