diff --git a/public/app/plugins/datasource/elasticsearch/metric_agg.js b/public/app/plugins/datasource/elasticsearch/metric_agg.js index c0c4ffc08d4..90c303a5722 100644 --- a/public/app/plugins/datasource/elasticsearch/metric_agg.js +++ b/public/app/plugins/datasource/elasticsearch/metric_agg.js @@ -103,6 +103,8 @@ function (angular, _, queryDef) { break; } case 'raw_document': { + $scope.agg.settings.size = $scope.agg.settings.size || 500; + $scope.settingsLinkText = 'Size: ' + $scope.agg.settings.size ; $scope.target.metrics = [$scope.agg]; $scope.target.bucketAggs = []; break; diff --git a/public/app/plugins/datasource/elasticsearch/partials/metric_agg.html b/public/app/plugins/datasource/elasticsearch/partials/metric_agg.html index 8c25c2d5347..cc2ec8e4918 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/metric_agg.html +++ b/public/app/plugins/datasource/elasticsearch/partials/metric_agg.html @@ -72,6 +72,11 @@ +
+ + +
+
diff --git a/public/app/plugins/datasource/elasticsearch/query_builder.js b/public/app/plugins/datasource/elasticsearch/query_builder.js index 62a7b379c8e..ee7e9265f08 100644 --- a/public/app/plugins/datasource/elasticsearch/query_builder.js +++ b/public/app/plugins/datasource/elasticsearch/query_builder.js @@ -109,8 +109,8 @@ function (queryDef) { return filterObj; }; - ElasticQueryBuilder.prototype.documentQuery = function(query) { - query.size = 500; + ElasticQueryBuilder.prototype.documentQuery = function(query, size) { + query.size = size === undefined ? 500 : parseInt(size , 10); query.sort = {}; query.sort[this.timeField] = {order: 'desc', unmapped_type: 'boolean'}; @@ -196,7 +196,9 @@ function (queryDef) { if (metric && metric.type !== 'raw_document') { throw {message: 'Invalid query'}; } - return this.documentQuery(query, target); + var size = metric && metric.hasOwnProperty("settings") && metric.settings.hasOwnProperty("size") + && metric.settings["size"] !== null ? metric.settings["size"] : 500 ; + return this.documentQuery(query,size); } nestedAggs = query; diff --git a/public/app/plugins/datasource/elasticsearch/specs/query_builder_specs.ts b/public/app/plugins/datasource/elasticsearch/specs/query_builder_specs.ts index 18645ad498d..201459e65d9 100644 --- a/public/app/plugins/datasource/elasticsearch/specs/query_builder_specs.ts +++ b/public/app/plugins/datasource/elasticsearch/specs/query_builder_specs.ts @@ -156,13 +156,22 @@ describe('ElasticQueryBuilder', function() { it('with raw_document metric', function() { var query = builder.build({ - metrics: [{type: 'raw_document', id: '1'}], + metrics: [{type: 'raw_document', id: '1',settings: {}}], timeField: '@timestamp', bucketAggs: [], }); expect(query.size).to.be(500); }); + it('with raw_document metric size set', function() { + var query = builder.build({ + metrics: [{type: 'raw_document', id: '1',settings: {size: '1337'}}], + timeField: '@timestamp', + bucketAggs: [], + }); + + expect(query.size).to.be(1337); + }); it('with moving average', function() { var query = builder.build({