var getMetricsData = function()

in ambari-metrics-grafana/ambari-metrics/datasource.js [100:143]


        var getMetricsData = function (target) {
          var alias = target.alias ? target.alias : target.metric;
          if (!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "yarnqueues") {
            alias = alias + ' on ' + target.qmetric;
          }
          if (!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "kafka-topics") {
            alias = alias + ' on ' + target.kbTopic;
          }
          return function (res) {
            res = res.data;
            console.log('processing metric ' + target.metric);
            if (!res.metrics[0] || target.hide) {
              return $q.when(emptyData(target));
            }
            var series = [];
            var metricData = res.metrics;
            _.map(metricData, function (data) {
              // Added hostname to legend for templated dashboards.
              var hostLegend = data.hostname ? ' on ' + data.hostname : '';
              var alias = target.alias ? target.alias : target.metric;
              if(!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "yarnqueues") {
                alias = alias + ' on ' + target.qmetric; }
              if(!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "kafka-topics") {
                alias = alias + ' on ' + target.kbTopic; }
              if (!alias.includes("%") || !data.metricname.includes('live_hosts')) {
                if (!alias || alias.includes("%")) {
                  alias = data.metricname;
                }
              var timeSeries = {};
              timeSeries = {
                target: alias + hostLegend,
                datapoints: []
                };
                for (var k in data.metrics) {
                  if (data.metrics.hasOwnProperty(k)) {
                    timeSeries.datapoints.push([data.metrics[k], (k - k % 1000)]);
                  }
                }
                series.push(timeSeries);
                }
               });
               return $q.when({data: series});
          };
        };