diff --git a/src/app/panels/graph/module.js b/src/app/panels/graph/module.js index 2c93945a4ba..2c9ba1cefa0 100644 --- a/src/app/panels/graph/module.js +++ b/src/app/panels/graph/module.js @@ -220,7 +220,7 @@ function (angular, app, $, _, kbn, moment, timeSeries) { $scope.editorTabs = _.pluck($scope.panelMeta.fullEditorTabs,'title'); $scope.hiddenSeries = {}; - $scope.datasources = datasourceSrv.listOptions(); + $scope.datasources = datasourceSrv.getMetricSources(); $scope.setDatasource($scope.panel.datasource); if ($scope.panel.targets.length === 0) { diff --git a/src/app/services/datasourceSrv.js b/src/app/services/datasourceSrv.js index d3f9defb96e..705230515f8 100644 --- a/src/app/services/datasourceSrv.js +++ b/src/app/services/datasourceSrv.js @@ -14,6 +14,8 @@ function (angular, _, config) { module.service('datasourceSrv', function($q, filterSrv, $http, $injector) { var datasources = {}; + var metricSources = []; + var annotationSources = []; this.init = function() { _.each(config.datasources, function(value, key) { @@ -27,6 +29,23 @@ function (angular, _, config) { this.default = datasources[_.keys(datasources)[0]]; this.default.default = true; } + + // create list of different source types + _.each(datasources, function(value, key) { + if (value.supportMetrics) { + metricSources.push({ + name: value.name, + value: value.default ? null : key, + }); + } + if (value.supportAnnotations) { + annotationSources.push({ + name: key, + editorSrc: value.annotationEditorSrc, + }); + } + }); + }; this.datasourceFactory = function(ds) { @@ -56,25 +75,11 @@ function (angular, _, config) { }; this.getAnnotationSources = function() { - var results = []; - _.each(datasources, function(value, key) { - if (value.supportAnnotations) { - results.push({ - name: key, - editorSrc: value.annotationEditorSrc, - }); - } - }); - return results; + return annotationSources; }; - this.listOptions = function() { - return _.map(config.datasources, function(value, key) { - return { - name: value.default ? key + ' (default)' : key, - value: value.default ? null : key - }; - }); + this.getMetricSources = function() { + return metricSources; }; this.init(); diff --git a/src/app/services/elasticsearch/es-datasource.js b/src/app/services/elasticsearch/es-datasource.js index 6d144d59de1..29291e029f3 100644 --- a/src/app/services/elasticsearch/es-datasource.js +++ b/src/app/services/elasticsearch/es-datasource.js @@ -19,6 +19,7 @@ function (angular, _, $, config, kbn, moment) { this.url = datasource.url; this.name = datasource.name; this.supportAnnotations = true; + this.supportMetrics = false; this.index = datasource.index; this.annotationEditorSrc = 'app/partials/elasticsearch/annotation_editor.html'; } diff --git a/src/app/services/graphite/graphiteDatasource.js b/src/app/services/graphite/graphiteDatasource.js index b03abd1a6f2..cf7eb4b1cf4 100644 --- a/src/app/services/graphite/graphiteDatasource.js +++ b/src/app/services/graphite/graphiteDatasource.js @@ -21,6 +21,7 @@ function (angular, _, $, config, kbn, moment) { this.name = datasource.name; this.render_method = datasource.render_method || 'POST'; this.supportAnnotations = true; + this.supportMetrics = true; this.annotationEditorSrc = 'app/partials/graphite/annotation_editor.html'; this.cacheTimeout = datasource.cacheTimeout; } diff --git a/src/app/services/influxdb/influxdbDatasource.js b/src/app/services/influxdb/influxdbDatasource.js index 500d010c148..2a28d72f9dc 100644 --- a/src/app/services/influxdb/influxdbDatasource.js +++ b/src/app/services/influxdb/influxdbDatasource.js @@ -23,6 +23,7 @@ function (angular, _, kbn, InfluxSeries) { }; this.supportAnnotations = true; + this.supportMetrics = true; this.annotationEditorSrc = 'app/partials/influxdb/annotation_editor.html'; }