Updates for new dimensions endpoints
Change-Id: Iaf9ddcdb24846a88a925f9a2649736f3d72a7e22
This commit is contained in:
parent
19a5c26744
commit
8423bf714e
@ -62,7 +62,7 @@ function (angular, _, moment, sdk, dateMath, kbn) {
|
|||||||
var promises = self.q.resolve(targets_promise).then(function(targets) {
|
var promises = self.q.resolve(targets_promise).then(function(targets) {
|
||||||
return targets.map(function (target) {
|
return targets.map(function (target) {
|
||||||
target = datasource.convertPeriod(target);
|
target = datasource.convertPeriod(target);
|
||||||
return datasource._limitedMonascaRequest(target, {}).then(datasource.convertDataPoints).catch(function(err) {throw err});
|
return datasource._limitedMonascaRequest(target, {}, true).then(datasource.convertDataPoints).catch(function(err) {throw err});
|
||||||
});
|
});
|
||||||
}).catch(function(err) {throw err});
|
}).catch(function(err) {throw err});
|
||||||
|
|
||||||
@ -78,50 +78,36 @@ function (angular, _, moment, sdk, dateMath, kbn) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaDatasource.prototype.namesQuery = function() {
|
|
||||||
return this._limitedMonascaRequest('/v2.0/metrics/names', {}).catch(function(err) {throw err});
|
|
||||||
};
|
|
||||||
|
|
||||||
MonascaDatasource.prototype.convertNamesList = function(data) {
|
|
||||||
var metrics = [];
|
|
||||||
data = data.data.elements;
|
|
||||||
for (var i = 0; i < data.length; i++) {
|
|
||||||
metrics.push(data[i].name);
|
|
||||||
}
|
|
||||||
return metrics;
|
|
||||||
};
|
|
||||||
|
|
||||||
MonascaDatasource.prototype.metricsQuery = function(params) {
|
MonascaDatasource.prototype.metricsQuery = function(params) {
|
||||||
return this._limitedMonascaRequest('/v2.0/metrics', params).catch(function(err) {throw err});
|
return this._limitedMonascaRequest('/v2.0/metrics', params, true).catch(function(err) {throw err;});
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaDatasource.prototype.buildDimensionList = function(data) {
|
MonascaDatasource.prototype.namesQuery = function() {
|
||||||
var keys = [];
|
var datasource = this;
|
||||||
var values = {};
|
return this._limitedMonascaRequest('/v2.0/metrics/names', {}, false).then(function(data) {
|
||||||
data = data.data.elements;
|
return datasource.convertDataList(data, 'name');
|
||||||
for (var i = 0; i < data.length; i++) {
|
}).catch(function(err) {throw err;});
|
||||||
var dim_set = data[i].dimensions;
|
|
||||||
for (var key in dim_set) {
|
|
||||||
if (keys.indexOf(key) == -1) {
|
|
||||||
keys.push(key);
|
|
||||||
values[key] = [];
|
|
||||||
}
|
|
||||||
var value = dim_set[key];
|
|
||||||
if (values[key].indexOf(value) == -1) {
|
|
||||||
values[key].push(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {'keys' : keys, 'values' : values};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaDatasource.prototype.buildMetricList = function(data) {
|
MonascaDatasource.prototype.dimensionNamesQuery = function(params) {
|
||||||
data = data.data.elements;
|
var datasource = this;
|
||||||
return data;
|
return this._limitedMonascaRequest('/v2.0/metrics/dimensions/names', params, false).then(function(data) {
|
||||||
|
return datasource.convertDataList(data, 'dimension_name')
|
||||||
|
}).catch(function(err) {throw err;});
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaDatasource.prototype.dimensionValuesQuery = function(params) {
|
MonascaDatasource.prototype.dimensionValuesQuery = function(params) {
|
||||||
return this._limitedMonascaRequest('/v2.0/metrics/dimensions/names/values', params).catch(function(err) {throw err});
|
var datasource = this;
|
||||||
|
return this._limitedMonascaRequest('/v2.0/metrics/dimensions/names/values', params, false).then(function(data) {
|
||||||
|
return datasource.convertDataList(data, 'dimension_value');
|
||||||
|
}).catch(function(err) {throw err;});
|
||||||
|
};
|
||||||
|
|
||||||
|
MonascaDatasource.prototype.convertDataList = function(data, key) {
|
||||||
|
var values = data.data.elements.map(function(element) {
|
||||||
|
return element[key];
|
||||||
|
});
|
||||||
|
return values;
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaDatasource.prototype.buildDataQuery = function(options, from, to) {
|
MonascaDatasource.prototype.buildDataQuery = function(options, from, to) {
|
||||||
@ -356,7 +342,7 @@ function (angular, _, moment, sdk, dateMath, kbn) {
|
|||||||
|
|
||||||
// For use with specified or api enforced limits.
|
// For use with specified or api enforced limits.
|
||||||
// Pages through data until all data is retrieved.
|
// Pages through data until all data is retrieved.
|
||||||
MonascaDatasource.prototype._limitedMonascaRequest = function(path, params) {
|
MonascaDatasource.prototype._limitedMonascaRequest = function(path, params, aggregate) {
|
||||||
var datasource = this;
|
var datasource = this;
|
||||||
var deferred = self.q.defer();
|
var deferred = self.q.defer();
|
||||||
var data = null;
|
var data = null;
|
||||||
@ -425,9 +411,12 @@ function (angular, _, moment, sdk, dateMath, kbn) {
|
|||||||
if (query.indexOf('merge_metrics') > -1) {
|
if (query.indexOf('merge_metrics') > -1) {
|
||||||
flattenResults();
|
flattenResults();
|
||||||
}
|
}
|
||||||
else {
|
else if (aggregate){
|
||||||
aggregateResults();
|
aggregateResults();
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
data.data.elements = element_list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
deferred.resolve(data);
|
deferred.resolve(data);
|
||||||
}).catch(function(err) {deferred.reject(err)});
|
}).catch(function(err) {deferred.reject(err)});
|
||||||
@ -473,12 +462,7 @@ function (angular, _, moment, sdk, dateMath, kbn) {
|
|||||||
|
|
||||||
MonascaDatasource.prototype.metricFindQuery = function(query) {
|
MonascaDatasource.prototype.metricFindQuery = function(query) {
|
||||||
return this.dimensionValuesQuery({'dimension_name': query}).then(function(data) {
|
return this.dimensionValuesQuery({'dimension_name': query}).then(function(data) {
|
||||||
var values = [];
|
return _.map(data, function(value) {
|
||||||
data = data.data.elements;
|
|
||||||
for (var i = 0; i < data.length; i++) {
|
|
||||||
values.push(data[i].values);
|
|
||||||
}
|
|
||||||
return _.map(_.flatten(values), function(value) {
|
|
||||||
return {text: value};
|
return {text: value};
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -79,9 +79,7 @@ function (angular, _, sdk) {
|
|||||||
|
|
||||||
MonascaQueryCtrl.prototype.suggestMetrics = function(query, callback) {
|
MonascaQueryCtrl.prototype.suggestMetrics = function(query, callback) {
|
||||||
if (!metricList) {
|
if (!metricList) {
|
||||||
self.datasource.namesQuery()
|
self.datasource.namesQuery().then(function(metrics) {
|
||||||
.then(self.datasource.convertNamesList)
|
|
||||||
.then(function(metrics) {
|
|
||||||
metricList = metrics;
|
metricList = metrics;
|
||||||
callback(metrics);
|
callback(metrics);
|
||||||
});
|
});
|
||||||
@ -116,22 +114,13 @@ function (angular, _, sdk) {
|
|||||||
|
|
||||||
MonascaQueryCtrl.prototype.resetDimensionList = function() {
|
MonascaQueryCtrl.prototype.resetDimensionList = function() {
|
||||||
dimensionList = { 'keys' : [], 'values' : {} };
|
dimensionList = { 'keys' : [], 'values' : {} };
|
||||||
if (this.target.metric) {
|
|
||||||
this.datasource.metricsQuery({'name' : this.target.metric})
|
|
||||||
.then(this.datasource.buildDimensionList)
|
|
||||||
.then(function(dimensions) {
|
|
||||||
dimensionList = dimensions;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaQueryCtrl.prototype.suggestDimensionKeys = function(query, callback) {
|
MonascaQueryCtrl.prototype.suggestDimensionKeys = function(query, callback) {
|
||||||
if (dimensionList.keys.length === 0 && self.target.metric) {
|
if (dimensionList.keys.length === 0 && self.target.metric) {
|
||||||
self.datasource.metricsQuery({'name' : self.target.metric})
|
self.datasource.dimensionNamesQuery({'metric_name' : self.target.metric}).then(function(dimensions) {
|
||||||
.then(self.datasource.buildDimensionList)
|
dimensionList.keys = dimensions;
|
||||||
.then(function(dimensions) {
|
callback(dimensions);
|
||||||
dimensionList = dimensions;
|
|
||||||
callback(dimensions.keys);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -141,11 +130,25 @@ function (angular, _, sdk) {
|
|||||||
|
|
||||||
MonascaQueryCtrl.prototype.suggestDimensionValues = function(query, callback) {
|
MonascaQueryCtrl.prototype.suggestDimensionValues = function(query, callback) {
|
||||||
var values = ['$all'];
|
var values = ['$all'];
|
||||||
|
var returnValues = true;
|
||||||
values = values.concat(self.datasource.listTemplates());
|
values = values.concat(self.datasource.listTemplates());
|
||||||
if (currentDimension.key && currentDimension.key in dimensionList.values) {
|
if (currentDimension.key) {
|
||||||
values = values.concat(dimensionList.values[currentDimension.key]);
|
if (!(currentDimension.key in dimensionList.values)) {
|
||||||
|
returnValues = false;
|
||||||
|
self.datasource.dimensionValuesQuery({'metric_name' : self.target.metric, 'dimension_name': currentDimension.key})
|
||||||
|
.then(function(dimensionValues) {
|
||||||
|
dimensionList.values[currentDimension.key] = dimensionValues;
|
||||||
|
values = values.concat(dimensionValues);
|
||||||
|
callback(values);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
values = values.concat(dimensionList.values[currentDimension.key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (returnValues) {
|
||||||
|
return values;
|
||||||
}
|
}
|
||||||
return values;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
MonascaQueryCtrl.prototype.editDimension = function(index) {
|
MonascaQueryCtrl.prototype.editDimension = function(index) {
|
||||||
|
Loading…
Reference in New Issue
Block a user