add loading custom metrics definitions

This commit is contained in:
Mitsuhiro Tanda
2015-08-24 21:58:57 +09:00
parent e74be5887c
commit c0c8465ec2
2 changed files with 53 additions and 1 deletions

View File

@@ -172,6 +172,47 @@ function (angular, _, kbn) {
],
};
/* jshint +W101 */
/* load custom metrics definitions */
var self = this;
$q.all(
_.map(datasource.jsonData.customMetricsAttributes, function(u) {
return $http({ method: 'GET', url: u });
})
)
.then(function(allResponse) {
_.chain(allResponse)
.map(function(d) {
return d.data.Metrics;
})
.flatten()
.reject(function(metric) {
return metric.Namespace.indexOf('AWS/') === 0;
})
.map(function(metric) {
metric.Dimensions = _.chain(metric.Dimensions)
.map(function(d) {
return d.Name;
})
.value().sort();
return metric;
})
.uniq(function(metric) {
return metric.Namespace + metric.MetricName + metric.Dimensions.join('');
})
.each(function(metric) {
if (!_.has(self.supportedMetrics, metric.Namespace)) {
self.supportedMetrics[metric.Namespace] = [];
}
self.supportedMetrics[metric.Namespace].push(metric.MetricName);
if (!_.has(self.supportedDimensions, metric.Namespace)) {
self.supportedDimensions[metric.Namespace] = [];
}
self.supportedDimensions[metric.Namespace] = _.union(self.supportedDimensions[metric.Namespace], metric.Dimensions);
});
});
}
// Called once per panel (graph)