From 637c720de5bf7a59263abd3d5b7ea820af313260 Mon Sep 17 00:00:00 2001 From: Harald Kraemer Date: Wed, 30 Apr 2014 09:40:06 +0200 Subject: [PATCH] Modified metricKeys to handle multiple graphite sources. This wasn't all too hard to change, I mostly changed the single http get to multiple http gets, one for each data source of type graphite. It's still not a good idea to call this on the web frontend, since the whole thing was working for about 20 - 30 minutes when I clicked it, so I'm not committing my changes to settings.js or the view itself. --- src/app/controllers/metricKeys.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/app/controllers/metricKeys.js b/src/app/controllers/metricKeys.js index e39d2b43c18..333be68baef 100644 --- a/src/app/controllers/metricKeys.js +++ b/src/app/controllers/metricKeys.js @@ -52,14 +52,16 @@ function (angular, _, config) { $scope.loadAll = function() { $scope.infoText = "Fetching all metrics from graphite..."; - return $http.get(config.graphiteUrl + "/metrics/index.json") - .then(saveMetricsArray) - .then(function () { + return $q.all( _.map( config.datasources, function( datasource ) { + if ( datasource.type = 'graphite' ) { + return $http.get( datasource.url + "/metrics/index.json" ) + .then( saveMetricsArray ); + } + } ) ).then( function() { $scope.infoText = "Indexing complete!"; - }) - .then(null, function(err) { + }).then(null, function(err) { $scope.errorText = err; - }); + }); }; function saveMetricsArray(data, currentIndex) @@ -155,6 +157,7 @@ function (angular, _, config) { function saveMetricKey(metricId) { // Create request with id as title. Rethink this. + console.log( config.grafana_metrics_index, metricId ); var request = $scope.ejs.Document(config.grafana_metrics_index, 'metricKey', metricId).source({ metricPath: metricId }); @@ -177,4 +180,4 @@ function (angular, _, config) { }); -}); \ No newline at end of file +});