Quellcode durchsuchen

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.
Harald Kraemer vor 11 Jahren
Ursprung
Commit
637c720de5
1 geänderte Dateien mit 10 neuen und 7 gelöschten Zeilen
  1. 10 7
      src/app/controllers/metricKeys.js

+ 10 - 7
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) {
 
   });
 
-});
+});