mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Reduce mapping storage overhead
This commit is contained in:
parent
8a5a974878
commit
85bfed67de
@ -13,23 +13,22 @@ function (angular, _, config) {
|
||||
var self = this;
|
||||
|
||||
this.list = ['_type'];
|
||||
this.mapping = {};
|
||||
this.fullMapping = {};
|
||||
this.indices = [];
|
||||
|
||||
// Stop tracking the full mapping, too expensive, instead we only remember the index names
|
||||
// we've already seen.
|
||||
//
|
||||
$rootScope.$watch(function(){return dashboard.indices;},function(n) {
|
||||
if(!_.isUndefined(n) && n.length && dashboard.current.index.warm_fields) {
|
||||
// Only get the mapping for indices we don't know it for
|
||||
var indices = _.difference(n,_.keys(self.fullMapping));
|
||||
var indices = _.difference(n,_.keys(self.indices));
|
||||
// Only get the mapping if there are new indices
|
||||
if(indices.length > 0) {
|
||||
self.map(indices).then(function(result) {
|
||||
self.fullMapping = _.extend(self.fullMapping,result);
|
||||
self.list = mapFields(self.fullMapping);
|
||||
self.indices = _.union(self.indices,_.keys(result));
|
||||
self.list = mapFields(result);
|
||||
});
|
||||
// Otherwise just use the cached mapping
|
||||
} else {
|
||||
// This is inefficient, should not need to reprocess?
|
||||
self.list = mapFields(_.pick(self.fullMapping,n));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -37,8 +36,8 @@ function (angular, _, config) {
|
||||
var mapFields = function (m) {
|
||||
var fields = [];
|
||||
_.each(m, function(types) {
|
||||
_.each(types, function(v) {
|
||||
fields = _.without(_.union(fields,_.keys(v)),'_all','_source');
|
||||
_.each(types, function(type) {
|
||||
fields = _.without(_.union(fields,_.keys(type)),'_all','_source');
|
||||
});
|
||||
});
|
||||
return fields;
|
||||
|
Loading…
Reference in New Issue
Block a user