kibana-123
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
82 lines (74 loc) • 3.1 kB
JavaScript
import IndexedArray from 'ui/indexed_array';
import 'ui/agg_types/agg_params';
import AggTypesMetricsCountProvider from 'ui/agg_types/metrics/count';
import AggTypesMetricsAvgProvider from 'ui/agg_types/metrics/avg';
import AggTypesMetricsSumProvider from 'ui/agg_types/metrics/sum';
import AggTypesMetricsMedianProvider from 'ui/agg_types/metrics/median';
import AggTypesMetricsMinProvider from 'ui/agg_types/metrics/min';
import AggTypesMetricsMaxProvider from 'ui/agg_types/metrics/max';
import AggTypesMetricsStdDeviationProvider from 'ui/agg_types/metrics/std_deviation';
import AggTypesMetricsCardinalityProvider from 'ui/agg_types/metrics/cardinality';
import AggTypesMetricsPercentilesProvider from 'ui/agg_types/metrics/percentiles';
import AggTypesMetricsPercentileRanksProvider from 'ui/agg_types/metrics/percentile_ranks';
import AggTypesBucketsDateHistogramProvider from 'ui/agg_types/buckets/date_histogram';
import AggTypesBucketsHistogramProvider from 'ui/agg_types/buckets/histogram';
import AggTypesBucketsRangeProvider from 'ui/agg_types/buckets/range';
import AggTypesBucketsDateRangeProvider from 'ui/agg_types/buckets/date_range';
import AggTypesBucketsIpRangeProvider from 'ui/agg_types/buckets/ip_range';
import AggTypesBucketsTermsProvider from 'ui/agg_types/buckets/terms';
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';
export default function AggTypeService(Private) {
let aggs = {
metrics: [
Private(AggTypesMetricsCountProvider),
Private(AggTypesMetricsAvgProvider),
Private(AggTypesMetricsSumProvider),
Private(AggTypesMetricsMedianProvider),
Private(AggTypesMetricsMinProvider),
Private(AggTypesMetricsMaxProvider),
Private(AggTypesMetricsStdDeviationProvider),
Private(AggTypesMetricsCardinalityProvider),
Private(AggTypesMetricsPercentilesProvider),
Private(AggTypesMetricsPercentileRanksProvider)
],
buckets: [
Private(AggTypesBucketsDateHistogramProvider),
Private(AggTypesBucketsHistogramProvider),
Private(AggTypesBucketsRangeProvider),
Private(AggTypesBucketsDateRangeProvider),
Private(AggTypesBucketsIpRangeProvider),
Private(AggTypesBucketsTermsProvider),
Private(AggTypesBucketsFiltersProvider),
Private(AggTypesBucketsSignificantTermsProvider),
Private(AggTypesBucketsGeoHashProvider)
]
};
Object.keys(aggs).forEach(function (type) {
aggs[type].forEach(function (agg) {
agg.type = type;
});
});
/**
* IndexedArray of Aggregation Types.
*
* These types form two groups, metric and buckets.
*
* @module agg_types
* @type {IndexedArray}
*/
return new IndexedArray({
/**
* @type {Array}
*/
index: ['name'],
/**
* [group description]
* @type {Array}
*/
group: ['type'],
initialSet: aggs.metrics.concat(aggs.buckets)
});
};
// preload