[Rollup] Remove builders from MetricConfig#32536
Conversation
|
Pinging @elastic/es-search-aggs |
jimczi
left a comment
There was a problem hiding this comment.
The validation of the metrics is fragile IMO. It feels wrong to detect a bad metric name in the transport level. @polyfractal I think it's time to use an Enum rather than a String in the metrics config ? Something like:
public enum Metric {
/**
* Pick the lowest value.
*/
MIN(MinAggregationBuilder.NAME),
/**
* Pick the highest value.
*/
MAX(MaxAggregationBuilder.NAME),
/**
* Use the average of all values.
*/
AVG(AvgAggregationBuilder.NAME),
/**
* Use the sum of all values.
*/
SUM(SumAggregationBuilder.NAME),
/**
* Use the number of values.
*/
VALUE_COUNT(ValueCountAggregationBuilder.NAME);
final String name;
Metric(String name) {
this.name = name;
}
}
We can add more later but the choice should be constrained to the available ones ?
|
Thanks @jimczi.
Indeed, I've been too quick on this. Having an enum is the right solution and I think I saw some todos about this in the rollup codebase. This can be done as a separate change, so maybe I could just reuse the previous code that hard check the metrics names so that this PR is not blocked? |
|
sure +1 to keep the previous code and we can update to an enum in a follow up if @polyfractal agrees. |
|
Thanks @jimczi. I restored the hard checks for metrics. |
|
Yeah, an enum would be cleaner/nicer. As soon as we started hardcoding strings I put in that TODO to stop doing it :) |
There was a problem hiding this comment.
Mostly just curious, but why Random as an argument instead of using the test class' random methods (randomBoolean(), etc)?
There was a problem hiding this comment.
I wasn't sure that ConfigTestHelpers methods were always used in the context of an ESTestCase, and I expect to have to use these methods in the high level rest client too so I found it safer to pass the Random object to the methods similarly to what is done for RandomNumbers or RandomPicks.
There was a problem hiding this comment.
👍 cool, thanks for the explanation :)
There was a problem hiding this comment.
Is there any advantage in randomizing these? I assumed that since unit tests are fast to execute, we should go ahead and test the obvious paths all the time so that failures aren't flaky.
There was a problem hiding this comment.
You're right, Jim made the same remark on another pull request. I removed the randomization.
9067600 to
a6b710a
Compare
a6b710a to
645abfb
Compare
|
Thanks @jimczi and @polyfractal |
…pe-detection-with-leading-whitespace * elastic/master: (34 commits) Cross-cluster search: preserve cluster alias in shard failures (elastic#32608) Handle AlreadyClosedException when bumping primary term [TEST] Allow to run in FIPS JVM (elastic#32607) [Test] Add ckb to the list of unsupported languages (elastic#32611) SCRIPTING: Move Aggregation Scripts to their own context (elastic#32068) Painless: Use LocalMethod Map For Lookup at Runtime (elastic#32599) [TEST] Enhance failure message when bulk updates have failures [ML] Add ML result classes to protocol library (elastic#32587) Suppress LicensingDocumentationIT.testPutLicense in release builds (elastic#32613) [Rollup] Update wire version check after backport Suppress Wildfly test in FIPS JVMs (elastic#32543) [Rollup] Improve ID scheme for rollup documents (elastic#32558) ingest: doc: move Dot Expander Processor doc to correct position (elastic#31743) [ML] Add some ML config classes to protocol library (elastic#32502) [TEST]Split transport verification mode none tests (elastic#32488) Core: Move helper date formatters over to java time (elastic#32504) [Rollup] Remove builders from DateHistogramGroupConfig (elastic#32555) [TEST} unmutes SearchAsyncActionTests and adds debugging info [ML] Add Detector config classes to protocol library (elastic#32495) [Rollup] Remove builders from MetricConfig (elastic#32536) ...
* 6.x: [Kerberos] Use canonical host name (#32588) Cross-cluster search: preserve cluster alias in shard failures (#32608) [TEST] Allow to run in FIPS JVM (#32607) Handle AlreadyClosedException when bumping primary term [Test] Add ckb to the list of unsupported languages (#32611) SCRIPTING: Move Aggregation Scripts to their own context (#32068) (#32629) [TEST] Enhance failure message when bulk updates have failures [ML] Add ML result classes to protocol library (#32587) Suppress LicensingDocumentationIT.testPutLicense in release builds (#32613) [Rollup] Improve ID scheme for rollup documents (#32558) Mutes failing SQL string function tests due to #32589 Suppress Wildfly test in FIPS JVMs (#32543) Add cluster UUID to Cluster Stats API response (#32206) [ML] Add some ML config classes to protocol library (#32502) [TEST]Split transport verification mode none tests (#32488) [Rollup] Remove builders from DateHistogramGroupConfig (#32555) [ML] Add Detector config classes to protocol library (#32495) [Rollup] Remove builders from MetricConfig (#32536) Fix race between replica reset and primary promotion (#32442) HLRC: Move commercial clients from XPackClient (#32596) Security: move User to protocol project (#32367) Minor fix for javadoc (applicable for java 11). (#32573) Painless: Move Some Lookup Logic to PainlessLookup (#32565) Core: Minor size reduction for AbstractComponent (#32509) INGEST: Enable default pipelines (#32286) (#32591) TEST: Avoid merges in testSeqNoAndCheckpoints [Rollup] Remove builders from HistoGroupConfig (#32533) fixed elements in array of produced terms (#32519) Mutes ReindexFailureTests.searchFailure dues to #28053 Mutes LicensingDocumentationIT due to #32580 Remove the SATA controller from OpenSUSE box [ML] Rename JobProvider to JobResultsProvider (#32551)
* master: Cross-cluster search: preserve cluster alias in shard failures (#32608) Handle AlreadyClosedException when bumping primary term [TEST] Allow to run in FIPS JVM (#32607) [Test] Add ckb to the list of unsupported languages (#32611) SCRIPTING: Move Aggregation Scripts to their own context (#32068) Painless: Use LocalMethod Map For Lookup at Runtime (#32599) [TEST] Enhance failure message when bulk updates have failures [ML] Add ML result classes to protocol library (#32587) Suppress LicensingDocumentationIT.testPutLicense in release builds (#32613) [Rollup] Update wire version check after backport Suppress Wildfly test in FIPS JVMs (#32543) [Rollup] Improve ID scheme for rollup documents (#32558) ingest: doc: move Dot Expander Processor doc to correct position (#31743) [ML] Add some ML config classes to protocol library (#32502) [TEST]Split transport verification mode none tests (#32488) Core: Move helper date formatters over to java time (#32504) [Rollup] Remove builders from DateHistogramGroupConfig (#32555) [TEST} unmutes SearchAsyncActionTests and adds debugging info [ML] Add Detector config classes to protocol library (#32495) [Rollup] Remove builders from MetricConfig (#32536) Tests: Add rolling upgrade tests for watcher (#32428) Fix race between replica reset and primary promotion (#32442)
Same motivation as #32507 but for the
MetricConfigconfiguration object.Related to #29827