diff --git a/src/ui/public/agg_types/index.js b/src/ui/public/agg_types/index.js index 47e628e83d7ad..808307493bb8b 100644 --- a/src/ui/public/agg_types/index.js +++ b/src/ui/public/agg_types/index.js @@ -22,6 +22,9 @@ import AggTypesBucketsFiltersProvider from 'ui/agg_types/buckets/filters'; import AggTypesBucketsSignificantTermsProvider from 'ui/agg_types/buckets/significant_terms'; import AggTypesBucketsGeoHashProvider from 'ui/agg_types/buckets/geo_hash'; import AggTypesMetricsBucketSumProvider from 'ui/agg_types/metrics/bucket_sum'; +import AggTypesMetricsBucketAvgProvider from 'ui/agg_types/metrics/bucket_avg'; +import AggTypesMetricsBucketMinProvider from 'ui/agg_types/metrics/bucket_min'; +import AggTypesMetricsBucketMaxProvider from 'ui/agg_types/metrics/bucket_max'; export default function AggTypeService(Private) { const aggs = { @@ -39,6 +42,9 @@ export default function AggTypeService(Private) { Private(AggTypesMetricsTopHitProvider), Private(AggTypesMetricsDerivativeProvider), Private(AggTypesMetricsBucketSumProvider), + Private(AggTypesMetricsBucketAvgProvider), + Private(AggTypesMetricsBucketMinProvider), + Private(AggTypesMetricsBucketMaxProvider), ], buckets: [ Private(AggTypesBucketsDateHistogramProvider), diff --git a/src/ui/public/agg_types/metrics/bucket_avg.js b/src/ui/public/agg_types/metrics/bucket_avg.js new file mode 100644 index 0000000000000..a8a8bd848d2c9 --- /dev/null +++ b/src/ui/public/agg_types/metrics/bucket_avg.js @@ -0,0 +1,17 @@ +import AggTypesMetricsMetricAggTypeProvider from 'ui/agg_types/metrics/metric_agg_type'; +import { makeNestedLabel } from './lib/make_nested_label'; +import SiblingPipelineAggHelperProvider from './lib/sibling_pipeline_agg_helper'; + +export default function AggTypeMetricDerivativeProvider(Private) { + const MetricAggType = Private(AggTypesMetricsMetricAggTypeProvider); + const siblingPipelineHelper = Private(SiblingPipelineAggHelperProvider); + + return new MetricAggType({ + name: 'avg_bucket', + title: 'Bucket Average', + makeLabel: agg => makeNestedLabel(agg, 'overall average'), + params: [ + ...siblingPipelineHelper.params() + ] + }); +} diff --git a/src/ui/public/agg_types/metrics/bucket_max.js b/src/ui/public/agg_types/metrics/bucket_max.js new file mode 100644 index 0000000000000..bb7275ca36595 --- /dev/null +++ b/src/ui/public/agg_types/metrics/bucket_max.js @@ -0,0 +1,17 @@ +import AggTypesMetricsMetricAggTypeProvider from 'ui/agg_types/metrics/metric_agg_type'; +import { makeNestedLabel } from './lib/make_nested_label'; +import SiblingPipelineAggHelperProvider from './lib/sibling_pipeline_agg_helper'; + +export default function AggTypeMetricDerivativeProvider(Private) { + const MetricAggType = Private(AggTypesMetricsMetricAggTypeProvider); + const siblingPipelineHelper = Private(SiblingPipelineAggHelperProvider); + + return new MetricAggType({ + name: 'max_bucket', + title: 'Bucket Max', + makeLabel: agg => makeNestedLabel(agg, 'overall max'), + params: [ + ...siblingPipelineHelper.params() + ] + }); +} diff --git a/src/ui/public/agg_types/metrics/bucket_min.js b/src/ui/public/agg_types/metrics/bucket_min.js new file mode 100644 index 0000000000000..d0c9e79373c1e --- /dev/null +++ b/src/ui/public/agg_types/metrics/bucket_min.js @@ -0,0 +1,17 @@ +import AggTypesMetricsMetricAggTypeProvider from 'ui/agg_types/metrics/metric_agg_type'; +import { makeNestedLabel } from './lib/make_nested_label'; +import SiblingPipelineAggHelperProvider from './lib/sibling_pipeline_agg_helper'; + +export default function AggTypeMetricDerivativeProvider(Private) { + const MetricAggType = Private(AggTypesMetricsMetricAggTypeProvider); + const siblingPipelineHelper = Private(SiblingPipelineAggHelperProvider); + + return new MetricAggType({ + name: 'min_bucket', + title: 'Bucket Min', + makeLabel: agg => makeNestedLabel(agg, 'overall min'), + params: [ + ...siblingPipelineHelper.params() + ] + }); +}