mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
feat(plugins): upgraded influxdb to new data source plugin model
This commit is contained in:
parent
15546dd84e
commit
b76449d151
@ -4,7 +4,6 @@ define([
|
||||
'app/core/utils/datemath',
|
||||
'./influx_series',
|
||||
'./influx_query',
|
||||
'./directives',
|
||||
'./query_ctrl',
|
||||
],
|
||||
function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
@ -12,27 +11,22 @@ function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
|
||||
InfluxQuery = InfluxQuery.default;
|
||||
|
||||
var module = angular.module('grafana.services');
|
||||
function InfluxDatasource(instanceSettings, $q, backendSrv, templateSrv) {
|
||||
this.type = 'influxdb';
|
||||
this.urls = _.map(instanceSettings.url.split(','), function(url) {
|
||||
return url.trim();
|
||||
});
|
||||
|
||||
module.factory('InfluxDatasource', function($q, backendSrv, templateSrv) {
|
||||
this.username = instanceSettings.username;
|
||||
this.password = instanceSettings.password;
|
||||
this.name = instanceSettings.name;
|
||||
this.database = instanceSettings.database;
|
||||
this.basicAuth = instanceSettings.basicAuth;
|
||||
|
||||
function InfluxDatasource(datasource) {
|
||||
this.type = 'influxdb';
|
||||
this.urls = _.map(datasource.url.split(','), function(url) {
|
||||
return url.trim();
|
||||
});
|
||||
this.supportAnnotations = true;
|
||||
this.supportMetrics = true;
|
||||
|
||||
this.username = datasource.username;
|
||||
this.password = datasource.password;
|
||||
this.name = datasource.name;
|
||||
this.database = datasource.database;
|
||||
this.basicAuth = datasource.basicAuth;
|
||||
|
||||
this.supportAnnotations = true;
|
||||
this.supportMetrics = true;
|
||||
}
|
||||
|
||||
InfluxDatasource.prototype.query = function(options) {
|
||||
this.query = function(options) {
|
||||
var timeFilter = getTimeFilter(options);
|
||||
var queryTargets = [];
|
||||
var i, y;
|
||||
@ -93,7 +87,7 @@ function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
});
|
||||
};
|
||||
|
||||
InfluxDatasource.prototype.annotationQuery = function(options) {
|
||||
this.annotationQuery = function(options) {
|
||||
var timeFilter = getTimeFilter({rangeRaw: options.rangeRaw});
|
||||
var query = options.annotation.query.replace('$timeFilter', timeFilter);
|
||||
query = templateSrv.replace(query);
|
||||
@ -106,7 +100,7 @@ function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
});
|
||||
};
|
||||
|
||||
InfluxDatasource.prototype.metricFindQuery = function (query) {
|
||||
this.metricFindQuery = function (query) {
|
||||
var interpolated;
|
||||
try {
|
||||
interpolated = templateSrv.replace(query);
|
||||
@ -133,17 +127,17 @@ function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
});
|
||||
};
|
||||
|
||||
InfluxDatasource.prototype._seriesQuery = function(query) {
|
||||
this._seriesQuery = function(query) {
|
||||
return this._influxRequest('GET', '/query', {q: query, epoch: 'ms'});
|
||||
};
|
||||
|
||||
InfluxDatasource.prototype.testDatasource = function() {
|
||||
this.testDatasource = function() {
|
||||
return this.metricFindQuery('SHOW MEASUREMENTS LIMIT 1').then(function () {
|
||||
return { status: "success", message: "Data source is working", title: "Success" };
|
||||
});
|
||||
};
|
||||
|
||||
InfluxDatasource.prototype._influxRequest = function(method, url, data) {
|
||||
this._influxRequest = function(method, url, data) {
|
||||
var self = this;
|
||||
|
||||
var currentUrl = self.urls.shift();
|
||||
@ -219,9 +213,8 @@ function (angular, _, dateMath, InfluxSeries, InfluxQuery) {
|
||||
}
|
||||
return (date.valueOf() / 1000).toFixed(0) + 's';
|
||||
}
|
||||
}
|
||||
|
||||
return InfluxDatasource;
|
||||
|
||||
});
|
||||
return InfluxDatasource;
|
||||
|
||||
});
|
||||
|
@ -1,7 +1,8 @@
|
||||
define([
|
||||
'angular',
|
||||
'./datasource',
|
||||
],
|
||||
function (angular) {
|
||||
function (angular, InfluxDatasource) {
|
||||
'use strict';
|
||||
|
||||
var module = angular.module('grafana.directives');
|
||||
@ -18,4 +19,11 @@ function (angular) {
|
||||
return {templateUrl: 'app/plugins/datasource/influxdb/partials/annotations.editor.html'};
|
||||
});
|
||||
|
||||
module.directive('datasourceCustomSettingsViewInfluxdb', function() {
|
||||
return {templateUrl: 'app/plugins/datasource/influxdb/partials/config.html'};
|
||||
});
|
||||
|
||||
return {
|
||||
Datasource: InfluxDatasource
|
||||
};
|
||||
});
|
@ -3,13 +3,7 @@
|
||||
"name": "InfluxDB 0.9.x",
|
||||
"id": "influxdb",
|
||||
|
||||
"serviceName": "InfluxDatasource",
|
||||
|
||||
"module": "app/plugins/datasource/influxdb/datasource",
|
||||
|
||||
"partials": {
|
||||
"config": "app/plugins/datasource/influxdb/partials/config.html"
|
||||
},
|
||||
"module": "app/plugins/datasource/influxdb/module",
|
||||
|
||||
"defaultMatchFormat": "regex values",
|
||||
"metrics": true,
|
||||
|
Loading…
Reference in New Issue
Block a user