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({