mirror of https://github.com/grafana/grafana
some initial work on making it easy to add a custom datasource without modifing the original source, #701, #553
parent
88d991ef45
commit
ec2b4f584c
@ -0,0 +1,55 @@ |
||||
define([ |
||||
'angular', |
||||
'lodash', |
||||
'kbn', |
||||
'moment' |
||||
], |
||||
function (angular, _, kbn) { |
||||
'use strict'; |
||||
|
||||
var module = angular.module('grafana.services'); |
||||
|
||||
module.factory('CustomDatasource', function($q) { |
||||
|
||||
// the datasource object passed to constructor
|
||||
// is the same defined in config.js
|
||||
function CustomDatasource(datasource) { |
||||
this.name = datasource.name; |
||||
this.supportMetrics = true; |
||||
this.url = datasource.url; |
||||
} |
||||
|
||||
CustomDatasource.prototype.query = function(filterSrv, options) { |
||||
// get from & to in seconds
|
||||
var from = kbn.parseDate(options.range.from).getTime() / 1000; |
||||
var to = kbn.parseDate(options.range.to).getTime() / 1000; |
||||
|
||||
var series = []; |
||||
var stepInSeconds = (to - from) / options.maxDataPoints; |
||||
|
||||
for (var i = 0; i < 3; i++) { |
||||
var walker = Math.random() * 100; |
||||
var time = from; |
||||
var timeSeries = { |
||||
target: "Series " + i, |
||||
datapoints: [] |
||||
}; |
||||
|
||||
for (var j = 0; j < options.maxDataPoints; j++) { |
||||
timeSeries.datapoints[j] = [walker, time]; |
||||
walker += Math.random() - 0.5; |
||||
time += stepInSeconds; |
||||
} |
||||
|
||||
series.push(timeSeries); |
||||
} |
||||
|
||||
return $q.when({data: series }); |
||||
|
||||
}; |
||||
|
||||
return CustomDatasource; |
||||
|
||||
}); |
||||
|
||||
}); |
||||
Loading…
Reference in new issue