-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Description
This is a meta issue tracks to work to be done for centralising most aggregations in a dedicated module.
The main benefits for centralizing aggregations are:
- Building and testing all aggregations is easier and quicker. Server module doesn't need to be build in order to build aggregations. Running something like
./gradlew -p modules/aggregations checkwill be most of time sufficient to ensure that a change to aggregations is working correctly. - This will make server module more light weight, since it doesn't need to contain many aggregations, but just aggregation infrastructure.
Also aggregations from other modules can be moved to the new aggregation module. But this depends on the license level of these aggregations, whether these aggregations pull in heavy dependencies or require additional security permissions.
When moving an aggregation both production implementation code (builder, aggregator, aggregator factory, bucket representation) should be moved and tests (unit, integration and yaml).
Main tasks
Bucket & metric aggregations
Aggregations that currently exist in server module and can be moved to .modules/aggregations:
- Move
adjacency_matrixagg to aggregation module. Introduce a new aggregation module #90294 - Move
auto_date_histogramagg to aggregation module. Move auto date histogram to aggregations module #90746 - Move
avgagg to aggregation module. - Move
cardinalityagg to aggregation module. - Move
compositeagg to aggregation module. (Move composite aggregation to aggregations module. #90954) - Move
ctor_cardinality_upper_boundagg to aggregation module. - Move
date_histogramagg to aggregation module. - Move
date_rangeagg to aggregation module. - Move
diversified_sampleragg to aggregation module. - Move
extended_statsagg to aggregation module. - Move
filteragg to aggregation module. - Move
filtersagg to aggregation module. - Move
globalagg to aggregation module. - Move
histogramagg to aggregation module. - Move
ip_prefixagg to aggregation module. - Move
ip_rangeagg to aggregation module. - Move
maxagg to aggregation module. - Move
median_absolute_deviationagg to aggregation module. (Move median_absolute_deviation aggregation to aggregations module. #92676) - Move
minagg to aggregation module. - Move
missingagg to aggregation module. - Move
nestedagg to aggregation module. - Move
percentile_ranksagg to aggregation module. - Move
percentilesagg to aggregation module. - Move
random_sampleragg to aggregation module. - Move
rangeagg to aggregation module. - Move
rare_termsagg to aggregation module. - Move
reverse_nestedagg to aggregation module. - Move
sampleragg to aggregation module. - Move
scripted_metricagg to aggregation module. - Move
significant_termsagg to aggregation module. - Move
significant_textagg to aggregation module. - Move
statsagg to aggregation module. - Move
sumagg to aggregation module. - Move
termsagg to aggregation module. - Move
time_seriesagg to aggregation module. Move time_series aggregation to aggregations module. #91356 - Move
top_hitsagg to aggregation module. - Move
value_countagg to aggregation module. - Move
variable_width_histogramagg to aggregation module. - Move
weighted_avgagg to aggregation module.
Pipeline aggregations
Pipeline aggregations that currently exist in server module and can be moved to .modules/aggregations:
- Move
avg_bucketpipeline agg to aggregation module. - Move
bucket_scriptpipeline agg to aggregation module. - Move
bucket_selectorpipeline agg to aggregation module. (Move bucket_selector agg to the agg module #91355) - Move
bucket_sortpipeline agg to aggregation module. (Enhance REST tests for bucket_sort #91221) - Move
cumulative_sumpipeline agg to aggregation module. - Move
derivativepipeline agg to aggregation module. (Move derivative agg to module #91014) - Move
extended_stats_bucketpipeline agg to aggregation module. - Move
max_bucketpipeline agg to aggregation module. - Move
min_bucketpipeline agg to aggregation module. - Move
moving_avgpipeline agg to aggregation module. - Move
moving_fnpipeline agg to aggregation module. (Move mov_fn agg to module #90836) - Move
percentiles_bucketpipeline agg to aggregation module. - Move
serial_diffpipeline agg to aggregation module. - Move
stats_bucketpipeline agg to aggregation module. - Move
sum_bucketpipeline agg to aggregation module.
Geo aggregations
The geo aggregations should maybe be moved to the existing spatial module or a new module that groups geo aggregations together. This is yet undecided.
- Move
geo_boundsagg out of the server module. - Move
geo_centroidagg out of the server module. - Move
geo_distanceagg out of the server module. - Move
geohash_gridagg out of the server module. - Move
geotile_gridagg out of the server module.
Other tasks
Other tasks that need completion before closing this meta issue.
- Remove
rest-api-spec's dependency on aggs module.