var allHostMetricsData = function()

in ambari-metrics-grafana/ambari-metrics/datasource.js [145:234]


        var allHostMetricsData = function (target) {
          var alias = target.alias ? target.alias : target.metric;
          if (!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "hbase-users") {
            alias = alias + ' for ' + target.hbUser;
          }
          // Aliases for Storm Topologies and components under a topology.
          if (!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "topologies" &&
            !templateSrv.variables[1]) {
            alias = alias + ' on ' + target.sTopology;
          }
          if (!_.isEmpty(templateSrv.variables[1]) && templateSrv.variables[1].name === "component") {
            alias = alias + ' on ' + target.sTopology + ' for ' + target.sComponent;
          }

          // Aliases for Druid Datasources.
          if (!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "druidDataSources" &&
            !templateSrv.variables[1]) {
            alias = alias.replace('$druidDataSource', target.sDataSource);
          }
          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 timeSeries = {};
            var metricData = res.metrics;
            _.map(metricData, function (data) {
              var totalCountFlag = false;
              var aliasSuffix = data.hostname ? ' on ' + data.hostname : '';
              var op = '';
              var user = '';
              if (!_.isEmpty(templateSrv.variables) && templateSrv.variables[0].query === "hbase-tables") {
                var tableName = "Tables.";
                var tableSuffix = data.metricname.substring(data.metricname.indexOf(tableName) + tableName.length,
                  data.metricname.lastIndexOf("_metric"));
                aliasSuffix = ' on ' + tableSuffix;
              }
              if (templateSrv.variables[0].query === "callers") {
                alias = data.metricname.substring(data.metricname.indexOf('(') + 1, data.metricname.indexOf(')'));
              }
              // Set legend and alias for HDFS - TopN dashboard
              if (data.metricname.indexOf('dfs.NNTopUserOpCounts') === 0) {
                var metricname_arr = data.metricname.split(".");
                _.map(metricname_arr, function (segment) {
                  if (segment.indexOf('op=') === 0) {
                    var opKey = 'op=';
                    op = segment.substring(segment.indexOf(opKey) + opKey.length);
                  } else if (segment.indexOf('user=') === 0) {
                    var userKey = 'user=';
                    user = segment.substring(segment.indexOf(userKey) + userKey.length);
                  }
                });
                // Check if metric is TotalCount
                if (data.metricname.indexOf('TotalCount') > 0) {
                  totalCountFlag = true;
                  if (op !== '*') {
                    alias = op;
                  } else {
                    alias = 'Total Count';
                  }
                } else if (op !== '*') {
                  alias = op + ' by ' + user;
                } else {
                  alias = user;
                }
                aliasSuffix = '';
              }
              if (data.appid.indexOf('ambari_server') === 0) {
                aliasSuffix = '';
              }
              if (!alias || alias.includes("%")) {
                alias = data.metricname;
              }
              timeSeries = {
                datapoints: []
              };
              for (var k in data.metrics) {
                if (data.metrics.hasOwnProperty(k)) {
                  timeSeries.datapoints.push([data.metrics[k], (k - k % 1000)]);
                }
              }
              if ((user !== '*') || (totalCountFlag)) {
                series.push(timeSeries);
              }
            });
            return $q.when({data: series});
          };
        };