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});
};
};