Elasticsearch: バケットとメトリックの集計のテストカバレッジを改善する

作成日 2016年12月20日  ·  3コメント  ·  ソース: elastic/elasticsearch

現在、バケットとメトリックの集計のユニットテストカバレッジはほとんどありません。 このメタ問題の目的は、それを大幅に改善することです。 アグリゲーションごとに、アグリゲーターの単体テスト(各アグリゲーションが実装するorg.apache.lucene.search.Collectorを介してLuceneインデックスと相互作用する方法)、reduceロジック、およびアグリゲーション結果のシリアル化を追加する必要があります。

次のAggregator実装の単体テストを追加する必要があります。

  • [x] ParentToChildrenAggregator @ cbuescher #23305
  • [x] FilterAggregator @ colings86 #23826
  • [x] FiltersAggregator @ jimczi #22678
  • [x] GeoHashGridAggregator @ martijnvg #23417
  • [x] GlobalAggregator @ nik9000 #22668
  • [x] DateHistogramAggregator @ tlrx #22714
  • [x] HistogramAggregator @ jpountz #22961
  • [x] MissingAggregator @ jimczi #23895
  • [x] NestedAggregator @polyfractal
  • [x] ReverseNestedAggregator @cbuescher
  • [x] RangeAggregatorDateRangeAggregationBuilderGeoDistanceAggregationBuilderでもテスト) @ tlrx #24569
  • [x] BinaryRangeAggregatorIpRangeAggregationBuilderでもテスト) @ jimczi #23255
  • [x]テストが必要な次の実装を持つ多様なサンプラーアグリゲーター: DiversifiedBytesHashSamplerAggregatorDiversifiedMapSamplerAggregatorDiversifiedNumericSamplerAggregator 、およびDiversifiedOrdinalsSamplerAggregator@ martijnvg
  • [x] SamplerAggregator @ nik9000 #23243
  • [x]重要な用語の集約: GlobalOrdinalsSignificantTermsAggregatorGlobalOrdinalsSignificantTermsAggregator.WithHashSignificantLongTermsAggregator 、およびSignificantStringTermsAggregator@ markharwood #24904
  • [x]用語の集計: DoubleTermsAggregatorGlobalOrdinalsStringTermsAggregator. LowCardinalityGlobalOrdinalsStringTermsAggregator. WithHashLongTermsAggregator 、およびStringTermsAggregator@ martijnvg #24949
  • [x] BestBucketsDeferringCollector @ MaineC
  • [x] BestDocsDeferringCollector @ polyfractal
  • [x] AvgAggregator @ cbuescher #23000
  • [x] CardinalityAggregator @ colings86 #23826
  • [x] GeoBoundsAggregator @ jimczi #23259
  • [x] GeoCentroidAggregator @ martijnvg #24111
  • [x] MaxAggregator @ nik9000 #22668
  • [x] MinAggregator [ MvG ]#22279
  • [x]パーセンタイルメトリック集計: TDigestPercentilesAggregatorおよびHDRPercentilesAggregator @ tlrx #24245
  • [x]パーセンタイルランクメトリック集計: TDigestPercentileRanksAggregatorおよびHDRPercentileRanksAggregator@ jpountz #23240
  • [x] ScriptedMetricAggregator @ cbuescher #23404
  • [x] StatsAggregator @jimczi
  • [x] ExtendedStatsAggregator @jimczi
  • [x] SumAggregator @ martijnvg
  • [x] TopHitsAggregator @ nik9000 #22754
  • [x] ValueCountAggregator @ tlrx #22741
  • [x] MatrixStatsAggregator @ martijnvg #24837

また、次のInternalAggregation実装のテストを追加する必要があります。
(reduceおよびresultシリアル化ロジックをテストするため)

  • [x] InternalChildren @ cbuescher #23261
  • [x] InternalFilter @ colings86 #23388
  • [x] InternalFilters @ jimczi #22678
  • [x] InternalGeoHashGrid @ martijnvg #23417
  • [x] InternalGlobal @ nik9000 #23388
  • [x] InternalHistogram @ jpountz #22961
  • [x] InternalDateHistogram @ tlrx #23402
  • [x] InternalMissing @ MaineC #23388
  • [x] InternalNested @ polyfractal #23388
  • [x] InternalReverseNested @ cbuescher #23388
  • [x] InternalRangeInternalDateRangeInternalGeoDistance@ tlrx #24569
  • [x] InternalBinaryRange @ jimczi #23259
  • [x] InternalSampler @martijnvg edada2581e75400da9fac82bdfbc7ec1f02ef0d8
  • [x]重要な用語の集約: SignificantLongTermsおよびSignificantStringTerms@ tlrx #23428
  • [x]用語の集計: DoubleTermsLongTermsStringTerms 、およびUnmappedTerms@ jpountz #23149
  • [x] InternalAvg @ cbuescher #23000
  • [x] InternalCardinality @ colings86 #23826
  • [x] InternalGeoBounds @ jimczi #23259
  • [x] InternalGeoCentroid @ martijnvg #24176
  • [x] InternalMax @ nik9000 #22668
  • [x] InternalMin @ colings86 + @ nik9000 #22668
  • [x]パーセンタイルメトリック集計: InternalTDigestPercentiles (#24090)およびInternalHDRPercentiles (#24157)@tlrx
  • [x]パーセンタイルランクメトリック集計: InternalTDigestPercentileRanksおよびInternalHDRPercentileRanks@ jpountz #23240
  • [x] InternalScriptedMetric @ cbuescher #23330
  • [x] InternalStats @jimczi
  • [x] InternalExtendedStats @jimczi
  • [x] InternalSum @ martijnvg
  • [x] InternalTopHits @ nik9000
  • [x] InternalValueCount @ tlrx #22741
  • [x] InternalMatrixStats @ martijnvg #24559

一部のクラスを忘れた可能性があるので、その場合はこの問題を更新してください:)

InternalAggregation実装は、 Aggregator実装とは別にリストしました。それぞれの単体テストは、さまざまな開発者が並行して作成できるためです。 ただし、それほど複雑でない集計では、 InternalAggregation実装とAggregator実装の両方の単体テストを同じPRに追加できると思います。

少なくともユニットテストはマスターブランチに追加する必要があると思います。 5.xブランチへのバックポートはベストエフォートであり、ぶら下がっている果物である場合にのみ検討する必要があります。

誤って2回作業することを避けるために、次の方法で作業することをお勧めします。

  • 単体テストの作成を開始する前に、作業したいタスクに名前を追加してください。
  • prを開いたら、PR番号をタスクに追加します。
  • prがマージされたら、タスクをチェックします。

集計がテストされることに注意してください。ただし、コードが構造化される前の方法のため、単体テストは非常に困難でした。

:AnalyticAggregations >test Meta

最も参考になるコメント

このチケットのすべてのタスクが完了しました🎉

全てのコメント3件

私がすべてのサブクラスまたはInternalSingleBucketAggregationために何かに取り組んだら、誰か気になりますか? たくさんのチェックボックスをクリックできると思います。

私がすべてのサブクラスまたはInternalSingleBucketAggregationのために何かに取り組んだら、誰か気になりますか? たくさんのチェックボックスをクリックできると思います。

#23388をマージしました。

このチケットのすべてのタスクが完了しました🎉

このページは役に立ちましたか?
0 / 5 - 0 評価