diff --git a/public/app/plugins/datasource/elasticsearch/bucket_agg.js b/public/app/plugins/datasource/elasticsearch/bucket_agg.js index 62cdcb3f59e..6df01f911d1 100644 --- a/public/app/plugins/datasource/elasticsearch/bucket_agg.js +++ b/public/app/plugins/datasource/elasticsearch/bucket_agg.js @@ -96,8 +96,13 @@ function (angular, _, queryDef) { $scope.agg.field = $scope.target.timeField; settingsLinkText = 'Interval: ' + settings.interval; settingsLinkText += ', Min Doc Count: ' + settings.min_doc_count; - if (settings.dropFirstLast) { - settingsLinkText += ', Drop first & last value'; + + if (settings.trimEdges === undefined || settings.trimEdges < 0) { + settings.trimEdges = 0; + } + + if (settings.trimEdges && settings.trimEdges > 0) { + settingsLinkText += ', Trim edges: ' + settings.trimEdges; } } } diff --git a/public/app/plugins/datasource/elasticsearch/elastic_response.js b/public/app/plugins/datasource/elasticsearch/elastic_response.js index f2403c96046..7ae4c204207 100644 --- a/public/app/plugins/datasource/elasticsearch/elastic_response.js +++ b/public/app/plugins/datasource/elasticsearch/elastic_response.js @@ -269,15 +269,16 @@ function (_, queryDef) { seriesList.push(series); }; - ElasticResponse.prototype.dropFirstLast = function(aggregations, target) { + ElasticResponse.prototype.trimDatapoints = function(aggregations, target) { var histogram = _.findWhere(target.bucketAggs, { type: 'date_histogram'}); - var shouldDropFirstAndLast = histogram && histogram.settings && histogram.settings.dropFirstLast; + var shouldDropFirstAndLast = histogram && histogram.settings && histogram.settings.trimEdges; if (shouldDropFirstAndLast) { + var trim = histogram.settings.trimEdges; for(var prop in aggregations) { var points = aggregations[prop]; - if (points.datapoints.length > 2) { - points.datapoints = points.datapoints.slice(1, points.datapoints.length-1); + if (points.datapoints.length > trim * 2) { + points.datapoints = points.datapoints.slice(trim, points.datapoints.length - trim); } } } @@ -303,7 +304,7 @@ function (_, queryDef) { var docs = []; this.processBuckets(aggregations, target, tmpSeriesList, docs, {}, 0); - this.dropFirstLast(tmpSeriesList, target); + this.trimDatapoints(tmpSeriesList, target); this.nameSeries(tmpSeriesList, target); for (var y = 0; y < tmpSeriesList.length; y++) { diff --git a/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html b/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html index b338e5d227f..97c3f591cb2 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html +++ b/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html @@ -37,7 +37,7 @@