This is an automated email from the ASF dual-hosted git repository.
sunithabeeram pushed a change to branch trackIndexWork
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git.
discard 8f373f1 [PINOT-7370] Track inverted index loaded per query
add f64625b [TE] frontend - aaronucsd/share - added % (+/-) for offsets
against current like predicted. (#3509)
add 27cbc56 [TE] New detection alerter to support alerting of legacy
anomalies (#3495)
add ac915e4 Let PinotDataBuffer.newIndexFor(...) takes long value (#3512)
add 60a72e4 [TE] detection - add two side pattern in rule filters (#3510)
add 0a43bac [TE] Percentage and absolute change rule filter (#3514)
add bcd05ed [TE] alert performnace - resilience to missing alert (#3497)
add 34d0e12 [TE] rootcause - request chunking for aggregates and scores
(#3496)
add 8c845ed [TE] rootcause - fix chunking offset cache (#3518)
add 4323070 [TE] rootcause - prevent add-to-chart popup by default (#3517)
add 6581245 [TE] rootcause - prevent line-break of exclude/hide links in
filter selector (#3519)
add 7fe991f Deleting extra check for deletedDir during retention (#3516)
add d77982d [TE] Organize the Holiday list in the alert email (#3520)
add d5ba9b0 [TE] Some minor bug fixes (#3521)
add 3774532 [TE] rootcause - fix filter processing for predicted baseline
(#3523)
add ce092c8 Fix the bug where time conversion is skipped when incoming
and outgoing time column name are the same (#3484)
add fdb9357 Added a log message on pinot-server when controller
leadership change is read from zookeeper. (#3522)
add 3fcf8f2 [TE] rootcause - support metric selection from chart labels
(#3526)
add bcd91e3 [TE] Attempt to organize and cleanup the email template
(#3527)
add 8fb5f28 Ignore generated documentation files while checking for
license headers (#3524)
add 77e394d [TE] datasource - aggregate to one minute level for epoch
timestamp (#3530)
add 4741882 [TE] rootcause - primary metric selection from legend label
(#3529)
add ebe5060 [TE] rootcause - support remove metric from chart label
(#3531)
add 5b1e6ec [TE] Some more minor changes to the look of the template
(#3534)
add 0389a6c [TE] roocause - fix dimension table metric select/unselect
(#3533)
add 2ce0bca [TE] frontend - harleyjj/rootcause - fix data inconsistency
warning t… (#3532)
add 4162fb3 [TE] Anomaly function to new pipeline YAML converter (#3537)
add 79f83e9 [TE] rootcause - prevent metric selection change on dimension
table tab change (#3536)
add ce6a53f [TE] detection - add more logs for merger for debugging
(#3540)
add d48499b [TE] Pipeline migration - fill in metric timezone (#3542)
add 234abc6 [TE] Display Holidays only from Top Countries (#3544)
add f915200 [TE] rootcause - remove tooltipEntities property (#3546)
add 16c5926 [TE] rootcause - redo route hooks (#3547)
add 81589c7 [TE] frontend - harleyjj/rootcause - warning value uses
aggregate multiplier and can be turned off if aggregates change without slider
being adjusted (#3548)
add 0bea669 First cut documentation. (#3545)
add 9607ca4 Adding execution stats for
numSegmentsQueried/Processed/Matched (#3525)
add 37ad801 [TE] rootcause - default millisecond datasets to 15min
granularity (#3550)
add 8bf0050 Optimize all filter predicates by adding isAlwaysTrue()
(#3535)
add e23f953 [TE] Alerts created by YAML to show up in the alert list
(#3551)
add 8e2076f Fix the wrong number reported by numSegmentsQueried (#3552)
add 7d4ab9e Cleaning data dir so URI construction works as expected
(#3549)
add ee4784d [TE] rootcause - preselect metric name in metric dropdown
(#3553)
add 4f5b2dd Fixing TODOs in new documentation (#3555)
add 61b4814 [TE] Make new alerter tag old anomalies as notified (#3554)
add ac74d13 [TE] frontend - harleyjj/manage - pass correct granularity to
buildMetricDataUrl (#3557)
add a834a49 [TE] pom - fix javassist dependency (#3559)
add 232360f Fixes to doc (#3558)
add d9ad5c3 Removing warnings in docs (#3560)
add 1e6fc74 Adding pluggable storage support for realtime upload (#3541)
add 44c2859 [TE] detection - copy nested property in wrapper (#3562)
add 45063b0 Re-org documentation (#3563)
add b62c611 [TE] frontend - harleyjj/create-alert - make minor
improvements to YAML alert creator (#3564)
add eceaf76 [TE] Legacy Alert Filter should pick recipients from new
alerter configs (#3565)
add 5a610be Add metric gauge to track the number of llc simultaneous
segment builds (#3566)
add 9dfb949 [TE] rootcause - rich metric selector (#3567)
add 8b2efec [TE] detection - filter out child anomaly in anomaly fetching
(#3570)
add f1559a7 Docs: Fix formatting for UDF docs. (#3569)
add 88ba23a [TE] rootcause - change frontend hack for baseline for new
pipeline (#3571)
add 213ff9c [TE] Configure Filters per Alert in Legacy Alerter (#3572)
add f1512e6 [TE] rootcause - hide heatmap tooltip on click (#3574)
add c752a4f Improve the logging for segment merge command (#3573)
add 75a4f85 Adding support for bloom filter (#3528)
add 1d4bf61 [TE] frontend - harleyjj/rootcause - use humanizeFloat to
change formatting of y-axis and prevent apparent duplicates (#3575)
add ef42e58 [TE] Minor fix in legacy alert filter (#3576)
add a4505af Applied humanizeFloat to anomaly-graph component (#3577)
add dac899f Changing segmentCommitEnd to support deep storage (#3578)
add acff279 [TE] frontend - default redirect to home dashboard (#3579)
add 5067baf [TE] Support sendOnce in LegacyAlertFilter (#3580)
add 3219189 Segment merge lineage data structure (#3543)
add 15ff8d8 [TE] rootcause - Round end time after adjusting with the
maxDateTime (#3581)
add 366bb39 [TE] frontend - harleyjj/manage - align startDate at
startOf() instead of endOf() (#3582)
add b21805c Change format of the ApplyConfig computed config (#3500)
add ed1e0c0 Fix NPE while unparsing single key DSL output (#3501)
add d99d8d8 Add new config API Java-properties format output (#3502)
add 5900ff1 Fix NPE on configs with per-profile table types (#3503)
add 5c84702 Change profile separator to triple underscores (#3504)
add ed88fb4 Config loader includes also look in profiles (#3507)
add e2916ed Minor deserialization fixes (#3508)
add 683b22d Handle invalid durations in the duration DSL (#3505)
add 4bed91b Add segment selector for merged segments (#3583)
add 4b4224f [TE] rootcause - baseline monthly, daily, hourly support
(#3585)
add 1211b22 Fix the bug in broker logging for execution statistics (#3587)
add dcdf5d4 [TE] detection pipeline - multiple improvements (#3586)
add ea628a9 add kafka simple consumer buffer and timeout to stream config
(#3584)
add 555ba8f Add the bloom filter to equals() and hashCode() in
IndexingConfig (#3588)
add 99c25a8 [PINOT-7461] Fix segment deletion when folder under
Deleted_Segments location does not exist (#3589)
add feaca0a [TE] Update alert schemes and suppressors in the annotation
alert registry (#3590)
add 694f6d7 [TE] rootcause - pin predicted baseline time offsets to PT
too (#3596)
add 9fc6e02 [TE] Translator - Yaml Alert Config to
DetectionAlertConfigDTO (#3595)
add 24c35e8 Allow completing segments to finish before stopping LLC
Segment Manager (#3593)
add a7a1745 [TE] detection - yaml validation (#3597)
add 08d26d6 [TE] datasource - correction for maxtime offset in pinot
datasource (#3598)
add 5afbebe [TE] frontend - update default yaml (#3599)
add 6a6c175 [TE] Endpoints for create and edit alert yaml along with
validators (#3603)
add 732e656 Cleanup: update code to return only physical columns for
select * queries (#3602)
add 569022a [PINOT-7476] Add metrics to track cases where segment
refresh/reloads fail (#3606)
add fa12efd [TE] detection - convert algo timestamps to dataset timezone
(#3608)
add 80be2cb [TE] yaml - create alert endpoint (#3609)
add d48e4fd Fix segment merge command. (#3611)
add a899cf4 Add config to set batchMessageMode on ideal state of new
tables (#3613)
add a7a927f [TE] tracking - increase datasource performance output (#3615)
add f079714 [TE] subscription groups endpoint (#3616)
add 65aa0ec Adding a class to get statistics about a request (query)
processed by… (#3614)
add 35d61aa Add ControllerLeadershipManager as single place to check
controller leadership changes (#3604)
add f26e482 Filter out virtual-columns in realtime segment conversion
path (#3607)
add 0146e5f [TE] frontend - harleyjj/create-alert - YAML autocomplete for
create … (#3617)
add 7a1fc25 Refactor ControllerPeriodicTask to iterate over tables
(#3618)
add 39e3360 [TE] get all subscription groups endpoint (#3619)
add eea2bc2 [PINOT-7370] Track inverted index loaded per query
add 0a40c18 Track bytes read in filter and projection phases.
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (8f373f1)
\
N -- N -- N refs/heads/trackIndexWork (0a40c18)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
docs/High-level-stream.png | Bin 0 -> 39800 bytes
docs/Low-level-stream.png | Bin 0 -> 37306 bytes
docs/Pinot - Hybrid flow.png | Bin 0 -> 15756 bytes
docs/Pinot-Offline-only-flow.png | Bin 0 -> 8179 bytes
docs/PlanNode.png | Bin 0 -> 41056 bytes
docs/ServerSegmentCompletion.dot.png | Bin 0 -> 72968 bytes
docs/architecture.rst | 142 +++++++
docs/client_api.rst | 229 +++++++++++
docs/commit-happy-path-1.png | Bin 0 -> 22933 bytes
docs/commit-happy-path-2.png | Bin 0 -> 22939 bytes
docs/committer-failed.png | Bin 0 -> 15412 bytes
docs/conf.py | 4 +-
docs/controller-failed.png | Bin 0 -> 23599 bytes
docs/controller-segment-completion.png | Bin 0 -> 85092 bytes
docs/delayed-server.png | Bin 0 -> 21690 bytes
docs/expressionTree.jpg | Bin 0 -> 12881 bytes
docs/expressions_udf.rst | 120 ++++++
docs/hlc-arch.png | Bin 0 -> 47924 bytes
docs/image2014-11-12-1-54-56.png | Bin 0 -> 112436 bytes
docs/image2014-11-12-19-54-12.png | Bin 0 -> 54744 bytes
docs/image2014-11-12-20-59-50.png | Bin 0 -> 36925 bytes
docs/image2014-11-13-11-21-7.png | Bin 0 -> 99075 bytes
docs/image2014-11-13-11-22-57.png | Bin 0 -> 27562 bytes
docs/image2015-4-14-194451.png | Bin 0 -> 83171 bytes
docs/image2015-5-12-7-24-58.png | Bin 0 -> 38969 bytes
docs/image2015-5-13 15-2-9.png | Bin 0 -> 41882 bytes
docs/image2015-5-17 13-32-28.png | Bin 0 -> 89700 bytes
docs/image2015-5-17 17-59-10.png | Bin 0 -> 82542 bytes
docs/image2015-5-19 0-29-34.png | Bin 0 -> 39085 bytes
docs/image2015-5-19 0-58-54.png | Bin 0 -> 54859 bytes
docs/image2015-5-19 1-28-35.png | Bin 0 -> 34374 bytes
docs/image2015-5-19 1-47-44.png | Bin 0 -> 34374 bytes
docs/image2015-5-19 1-59-51.png | Bin 0 -> 37098 bytes
docs/index.rst | 53 ++-
docs/intro.rst | 51 ++-
docs/llc-arch.png | Bin 0 -> 39899 bytes
docs/llc.rst | 164 ++++++++
docs/management_api.rst | 8 +
docs/multiple-server-failure.png | Bin 0 -> 18036 bytes
docs/multitenancy.rst | 340 ++++++++++++++++
docs/parseTree.png | Bin 0 -> 55136 bytes
docs/partition_aware_routing.rst | 141 +++++++
docs/pinot-architecture.png | Bin 0 -> 58474 bytes
docs/pinot_hadoop.rst | 177 ++++++++
docs/pluggable_streams.png | Bin 0 -> 136984 bytes
docs/pluggable_streams.rst | 124 ++++++
docs/pql_examples.rst | 260 ++++++++++++
docs/reference.rst | 41 +-
docs/schema_timespec.rst | 111 +++++
docs/segment-consumer-fsm.png | Bin 0 -> 30109 bytes
docs/segment-creation.png | Bin 0 -> 9830 bytes
docs/segment-helix-fsm.png | Bin 0 -> 7494 bytes
docs/segment_fetcher.rst | 77 ++++
docs/trying_pinot.rst | 60 +--
docs/zk-setup.png | Bin 0 -> 39246 bytes
docs/znode_layout.png | Bin 0 -> 43271 bytes
.../pinot/broker/api/RequestStatistics.java | 175 ++++++++
.../broker/api/resources/PinotClientRequest.java | 5 +-
.../requesthandler/BaseBrokerRequestHandler.java | 42 +-
.../requesthandler/BrokerRequestHandler.java | 8 +-
.../ConnectionPoolBrokerRequestHandler.java | 8 +-
.../SingleConnectionBrokerRequestHandler.java | 8 +-
.../routing/HelixExternalViewBasedRouting.java | 25 +-
.../BasePartitionAwareRoutingTableBuilder.java | 8 +-
.../routing/builder/BaseRoutingTableBuilder.java | 11 +-
.../builder/DefaultOfflineRoutingTableBuilder.java | 8 +-
.../DefaultRealtimeRoutingTableBuilder.java | 11 +-
.../routing/builder/RoutingTableBuilder.java | 8 +-
.../routing/selector/MergedSegmentSelector.java | 92 +++++
.../broker/routing/selector/SegmentSelector.java | 46 +++
.../routing/selector/SegmentSelectorProvider.java | 44 ++
.../broker/broker/HelixBrokerStarterTest.java | 4 +-
.../pinot/broker/routing/RoutingTableTest.java | 1 +
.../BalancedRandomRoutingTableBuilderTest.java | 2 +-
.../HighLevelConsumerRoutingTableBuilderTest.java | 2 +-
...rtitionAwareOfflineRoutingTableBuilderTest.java | 9 +-
...titionAwareRealtimeRoutingTableBuilderTest.java | 10 +-
.../selector/MergedSegmentSelectorTest.java | 149 +++++++
.../{routing => util}/FakePropertyStore.java | 12 +-
.../config/AdjustTableNameChildKeyTransformer.java | 4 +-
.../pinot/common/config/CombinedConfigLoader.java | 19 +-
...CombinedConfigSeparatorChildKeyTransformer.java | 8 +
.../linkedin/pinot/common/config/Deserializer.java | 10 +-
.../linkedin/pinot/common/config/DurationDsl.java | 23 +-
.../pinot/common/config/IndexingConfig.java | 16 +-
.../linkedin/pinot/common/config/Serializer.java | 18 +-
.../linkedin/pinot/common/config/TableConfig.java | 7 +
.../com/linkedin/pinot/common/data/FieldSpec.java | 26 +-
.../com/linkedin/pinot/common/data/Schema.java | 15 +
.../pinot/common/lineage/SegmentGroup.java | 72 ++++
.../pinot/common/lineage/SegmentMergeLineage.java | 348 ++++++++++++++++
.../lineage/SegmentMergeLineageAccessHelper.java | 85 ++++
.../pinot/common/metadata/ZKMetadataProvider.java | 5 +
.../pinot/common/metrics/AbstractMetrics.java | 29 +-
.../linkedin/pinot/common/metrics/ServerGauge.java | 3 +-
.../linkedin/pinot/common/metrics/ServerMeter.java | 8 +-
.../pinot/common/response/BrokerResponse.java | 15 +
.../response/broker/BrokerResponseNative.java | 66 ++-
.../pinot/common/segment/SegmentMetadata.java | 2 +
.../com/linkedin/pinot/common/utils/DataTable.java | 5 +
.../common/utils/time/DefaultTimeConverter.java | 83 ----
.../pinot/common/utils/time/TimeConverter.java | 54 ++-
.../pinot/common/config/IndexingConfigTest.java | 10 +
.../common/lineage/SegmentMergeLineageTest.java | 142 +++++++
.../utils/time/DefaultTimeConverterTest.java | 174 --------
.../pinot/common/utils/time/TimeConverterTest.java | 97 +++++
.../linkedin/pinot/controller/ControllerConf.java | 8 +-
.../controller/ControllerLeadershipManager.java | 126 ++++++
.../pinot/controller/ControllerStarter.java | 13 +-
.../controller/LeadershipChangeSubscriber.java | 23 +-
.../api/resources/FileUploadPathProvider.java | 2 +
.../resources/LLCSegmentCompletionHandlers.java | 77 ++--
.../resources/PinotTableConfigRestletResource.java | 32 +-
.../helix/ControllerRequestURLBuilder.java | 5 +
.../controller/helix/SegmentStatusChecker.java | 285 ++++++-------
.../helix/core/PinotHelixResourceManager.java | 27 +-
.../helix/core/PinotTableIdealStateBuilder.java | 20 +-
.../helix/core/SegmentDeletionManager.java | 7 -
.../helix/core/minion/PinotTaskManager.java | 99 ++---
.../core/periodictask/ControllerPeriodicTask.java | 33 +-
.../realtime/PinotLLCRealtimeSegmentManager.java | 108 +++--
.../core/realtime/PinotRealtimeSegmentManager.java | 29 +-
.../core/realtime/SegmentCompletionManager.java | 17 +-
.../core/relocation/RealtimeSegmentRelocator.java | 76 ++--
.../helix/core/retention/RetentionManager.java | 27 +-
.../helix/core/util/HelixSetupUtils.java | 11 +-
.../controller/validation/StorageQuotaChecker.java | 7 +-
.../controller/validation/ValidationManager.java | 89 ++--
.../controller/helix/PinotResourceManagerTest.java | 2 +-
.../controller/helix/SegmentStatusCheckerTest.java | 43 +-
.../periodictask/ControllerPeriodicTaskTest.java | 48 ++-
.../PinotLLCRealtimeSegmentManagerTest.java | 10 +-
.../helix/core/realtime/SegmentCompletionTest.java | 7 +
.../helix/core/retention/RetentionManagerTest.java | 20 +-
.../sharding/SegmentAssignmentStrategyTest.java | 4 +-
.../validation/StorageQuotaCheckerTest.java | 20 +-
.../validation/ValidationManagerTest.java | 4 +-
.../com/linkedin/pinot/core/bloom/BloomFilter.java | 69 ++++
.../linkedin/pinot/core/bloom/BloomFilterType.java | 50 +++
.../linkedin/pinot/core/bloom/BloomFilterUtil.java | 54 +++
.../pinot/core/bloom/GuavaOnHeapBloomFilter.java | 74 ++++
.../core/bloom/SegmentBloomFilterFactory.java | 48 +++
.../linkedin/pinot/core/common/DataFetcher.java | 25 ++
.../com/linkedin/pinot/core/common/DataSource.java | 3 +
.../realtime/LLRealtimeSegmentDataManager.java | 5 +
.../readers/MultiplePinotSegmentRecordReader.java | 13 +-
.../data/recordtransformer/TimeTransformer.java | 55 ++-
.../immutable/ImmutableSegmentLoader.java | 9 +-
.../indexsegment/mutable/MutableSegmentImpl.java | 5 +-
.../core/operator/CombineGroupByOperator.java | 4 +
.../pinot/core/operator/CombineOperator.java | 4 +
.../pinot/core/operator/DocIdSetOperator.java | 1 +
.../pinot/core/operator/ExecutionStatistics.java | 38 +-
.../pinot/core/operator/ProjectionOperator.java | 8 +-
.../operator/blocks/IntermediateResultsBlock.java | 33 ++
.../core/operator/docidsets/AndBlockDocIdSet.java | 9 +
.../docidsets/BitmapBasedBlockDocIdSet.java | 41 --
.../core/operator/docidsets/BitmapDocIdSet.java | 15 +
.../docidsets/EmptyFilterBlockDocIdSet.java | 5 +
.../operator/docidsets/FilterBlockDocIdSet.java | 5 +
.../core/operator/docidsets/OrBlockDocIdSet.java | 9 +
.../docidsets/ScanBasedMultiValueDocIdSet.java | 7 +
.../docidsets/ScanBasedSingleValueDocIdSet.java | 9 +-
.../core/operator/docidsets/SizeBasedDocIdSet.java | 5 +
.../core/operator/docidsets/SortedDocIdSet.java | 8 +-
.../core/operator/docidsets/StarTreeDocIdSet.java | 6 +
.../core/operator/filter/AndFilterOperator.java | 25 +-
.../core/operator/filter/BaseFilterOperator.java | 13 +-
.../operator/filter/BitmapBasedFilterOperator.java | 15 +-
.../core/operator/filter/EmptyFilterOperator.java | 8 +-
.../core/operator/filter/FilterOperatorUtils.java | 65 ++-
.../operator/filter/MatchAllFilterOperator.java | 8 +-
.../core/operator/filter/OrFilterOperator.java | 25 +-
.../operator/filter/ScanBasedFilterOperator.java | 16 +-
.../SortedInvertedIndexBasedFilterOperator.java | 15 +-
.../BaseDictionaryBasedPredicateEvaluator.java | 12 +
.../BaseRawValueBasedPredicateEvaluator.java | 15 +-
.../predicate/EqualsPredicateEvaluatorFactory.java | 9 +-
.../predicate/InPredicateEvaluatorFactory.java | 14 +-
.../NotEqualsPredicateEvaluatorFactory.java | 9 +-
.../predicate/NotInPredicateEvaluatorFactory.java | 16 +-
.../filter/predicate/PredicateEvaluator.java | 5 +
.../predicate/RangePredicateEvaluatorFactory.java | 33 +-
.../RegexpLikePredicateEvaluatorFactory.java | 5 -
.../operator/query/AggregationGroupByOperator.java | 9 +-
.../core/operator/query/AggregationOperator.java | 7 +-
.../query/DictionaryBasedAggregationOperator.java | 3 +-
.../operator/query/EmptySelectionOperator.java | 2 +-
.../query/MetadataBasedAggregationOperator.java | 3 +-
.../core/operator/query/SelectionOnlyOperator.java | 10 +-
.../operator/query/SelectionOrderByOperator.java | 17 +-
.../core/operator/transform/TransformOperator.java | 4 +
.../linkedin/pinot/core/plan/FilterPlanNode.java | 37 +-
.../query/executor/ServerQueryExecutorV1Impl.java | 12 +-
.../core/query/pruner/AbstractSegmentPruner.java | 17 +-
.../query/pruner/ColumnValueSegmentPruner.java | 44 +-
.../core/query/pruner/PartitionSegmentPruner.java | 10 +-
.../core/query/reduce/BrokerReduceService.java | 20 +
.../core/query/request/ServerQueryRequest.java | 8 -
.../pinot/core/query/scheduler/QueryScheduler.java | 28 +-
.../query/selection/SelectionOperatorUtils.java | 11 +-
.../converter/RealtimeSegmentConverter.java | 40 +-
.../impl/kafka/KafkaConnectionHandler.java | 22 +-
.../impl/kafka/KafkaLowLevelStreamConfig.java | 48 ++-
.../impl/kafka/KafkaStreamConfigProperties.java | 4 +
.../core/segment/creator/impl/V1Constants.java | 1 +
.../creator/impl/bloom/BloomFilterCreator.java | 66 +++
.../pinot/core/segment/index/ColumnMetadata.java | 23 +-
.../core/segment/index/SegmentMetadataImpl.java | 5 +
.../segment/index/column/ColumnIndexContainer.java | 3 +
.../index/column/PhysicalColumnIndexContainer.java | 21 +
.../converter/SegmentV1V2ToV3FormatConverter.java | 2 +-
.../index/data/source/ColumnDataSource.java | 17 +-
.../segment/index/loader/IndexLoadingConfig.java | 17 +
.../core/segment/index/loader/LoaderUtils.java | 4 +-
.../segment/index/loader/SegmentPreProcessor.java | 7 +-
.../loader/bloomfilter/BloomFilterHandler.java | 160 ++++++++
.../defaultcolumn/BaseDefaultColumnHandler.java | 2 +-
.../index/readers/BitmapInvertedIndexReader.java | 2 +-
.../segment/index/readers/BloomFilterReader.java | 54 +++
.../readers/ImmutableRoaringBitmapWrapper.java} | 25 +-
.../core/segment/store/ColumnIndexDirectory.java | 24 +-
.../pinot/core/segment/store/ColumnIndexType.java | 3 +-
.../core/segment/store/FilePerIndexDirectory.java | 27 +-
.../pinot/core/segment/store/SegmentDirectory.java | 2 +-
.../segment/store/SegmentLocalFSDirectory.java | 14 +-
.../segment/store/SingleFileIndexDirectory.java | 20 +-
.../virtualcolumn/BaseVirtualColumnProvider.java | 12 +
.../virtualcolumn/DocIdVirtualColumnProvider.java | 8 +-
.../SingleStringVirtualColumnProvider.java | 9 +-
.../virtualcolumn/VirtualColumnIndexContainer.java | 6 +
.../startree/operator/StarTreeFilterOperator.java | 58 ++-
.../v2/store/StarTreeDimensionDataSource.java | 6 +
.../v2/store/StarTreeMetricDataSource.java | 6 +
.../server/realtime/ControllerLeaderLocator.java | 2 +
.../pinot/core/common/DataFetcherTest.java | 2 +-
.../core/common/RealtimeNoDictionaryTest.java | 8 +-
.../core/common/docidsets/BitmapDocIdSetTest.java | 3 +-
.../recordtransformer/RecordTransformerTest.java | 25 --
.../recordtransformer/TimeTransformerTest.java | 146 +++++++
.../operator/filter/AndFilterOperatorTest.java | 27 +-
.../operator/filter/FilterOperatorUtilsTest.java | 98 +++++
.../{ => core}/operator/filter/IntRangesTest.java | 3 +-
.../operator/filter/OrFilterOperatorTest.java | 20 +-
.../core/operator/filter/TestFilterOperator.java | 88 ++++
.../function/BaseTransformFunctionTest.java | 2 +-
...ngeOfflineDictionaryPredicateEvaluatorTest.java | 44 +-
.../impl/kafka/KafkaLowLevelStreamConfigTest.java | 100 +++++
.../kafka/KafkaPartitionLevelConsumerTest.java | 50 +++
.../index/creator/BloomFilterCreatorTest.java | 150 +++++++
.../store/ColumnIndexDirectoryTestHelper.java | 15 +
.../core/startree/hll/HllIndexCreationTest.java | 2 +-
.../operator/filter/FilterOperatorTestUtils.java | 90 -----
...nerSegmentAggregationMultiValueQueriesTest.java | 12 +-
...InnerSegmentSelectionMultiValueQueriesTest.java | 6 +-
...nnerSegmentSelectionSingleValueQueriesTest.java | 61 +++
...terSegmentAggregationMultiValueQueriesTest.java | 32 +-
.../DefaultAggregationExecutorTest.java | 2 +-
.../query/pruner/ColumnValueSegmentPrunerTest.java | 4 +-
.../converter/RealtimeSegmentConverterTest.java | 50 +++
.../linkedin/pinot/filesystem/LocalPinotFS.java | 3 +
.../com/linkedin/pinot/filesystem/PinotFS.java | 2 +-
.../pinot/filesystem/LocalPinotFSTest.java | 34 ++
.../tests/BaseClusterIntegrationTest.java | 6 +
.../tests/BaseClusterIntegrationTestSet.java | 27 +-
.../pinot/integration/tests/ClusterTest.java | 41 +-
...mentBuildPushOfflineClusterIntegrationTest.java | 2 +-
.../tests/HybridClusterIntegrationTest.java | 10 +-
...ridClusterIntegrationTestCommandLineRunner.java | 2 +-
.../tests/LLCRealtimeClusterIntegrationTest.java | 42 ++
...onaryAggregationPlanClusterIntegrationTest.java | 31 +-
.../tests/OfflineClusterIntegrationTest.java | 43 +-
.../tests/RealtimeClusterIntegrationTest.java | 4 +-
.../tests/SimpleMinionClusterIntegrationTest.java | 6 +-
.../linkedin/pinot/perf/PerfBenchmarkRunner.java | 71 ----
.../com/linkedin/pinot/perf/PerfBenchmarkTest.java | 77 ----
.../com/linkedin/pinot/perf/RawIndexBenchmark.java | 9 +-
.../server/starter/helix/HelixServerStarter.java | 4 +-
.../helix/SegmentMessageHandlerFactory.java | 27 +-
.../admin/command/ApplyTableConfigCommand.java | 3 +-
.../pinot/tools/perf/PerfBenchmarkDriver.java | 6 +-
.../pinot/tools/perf/PerfBenchmarkRunner.java | 16 +-
.../tools/scan/query/SegmentQueryProcessor.java | 2 +-
.../segment/converter/SegmentMergeCommand.java | 55 ++-
pom.xml | 3 +
thirdeye/pom.xml | 7 +
.../app/mirage/endpoints/rootcause.js | 3 +-
.../app/mirage/endpoints/selfserve.js | 14 +
.../app/pods/components/anomaly-graph/component.js | 12 +-
.../app/pods/components/filter-select/component.js | 14 +-
.../app/pods/components/heatmap-chart/component.js | 3 +
.../pods/components/rootcause-anomaly/component.js | 63 ++-
.../pods/components/rootcause-anomaly/template.hbs | 2 +-
.../pods/components/rootcause-chart/component.js | 52 ++-
.../pods/components/rootcause-chart/template.hbs | 11 +-
.../rootcause-dimensions-table/component.js | 18 +-
.../pods/components/rootcause-legend/component.js | 42 +-
.../pods/components/rootcause-legend/template.hbs | 22 +-
.../rootcause-select-comparison-range/component.js | 39 +-
.../rootcause-select-metric-dimension/component.js | 9 +-
.../rootcause-select-metric-dimension/template.hbs | 20 +-
.../rootcause-select-metric/component.js | 43 +-
.../rootcause-select-metric/template.hbs | 6 +-
.../pods/custom/metrics-table-metric/template.hbs | 2 +-
.../app/pods/home/share-dashboard/controller.js | 23 +-
.../app/pods/home/share-dashboard/template.hbs | 19 +-
.../app/pods/manage/alert/explore/route.js | 3 +-
.../app/pods/manage/alerts/index/route.js | 64 ++-
.../app/pods/manage/alerts/performance/route.js | 15 +-
.../rootcause/select-metric-label/template.hbs | 6 +
.../app/pods/rootcause/controller.js | 23 +-
.../thirdeye-frontend/app/pods/rootcause/route.js | 86 ++--
.../app/pods/rootcause/template.hbs | 9 +-
.../app/pods/self-serve/create-alert/controller.js | 187 ++++++++-
.../app/pods/self-serve/create-alert/template.hbs | 21 +-
.../services/rootcause-aggregates-cache/service.js | 83 ++--
.../rootcause-anomalyfunction-cache/service.js | 8 +-
.../app/pods/services/rootcause-fetcher/service.js | 2 +
.../services/rootcause-scores-cache/service.js | 10 +-
.../app/styles/components/rootcause-chart.scss | 25 ++
.../app/styles/components/rootcause-legend.scss | 4 +
.../styles/components/rootcause-select-metric.scss | 28 +-
.../app/styles/pods/self-serve/create-alert.scss | 6 +
thirdeye/thirdeye-frontend/app/utils/constants.js | 138 ++++++-
thirdeye/thirdeye-frontend/app/utils/rca-utils.js | 17 +-
thirdeye/thirdeye-frontend/app/utils/utils.js | 7 +-
thirdeye/thirdeye-frontend/ember-cli-build.js | 7 +
thirdeye/thirdeye-frontend/package.json | 4 +-
.../tests/acceptance/rootcause-test.js | 7 +-
.../components/rootcause-anomaly/component-test.js | 91 ++++-
thirdeye/thirdeye-pinot/pom.xml | 4 +
.../alert/content/BaseEmailContentFormatter.java | 16 +-
.../EmailContentFormatterConfiguration.java | 11 +
...HierarchicalAnomaliesEmailContentFormatter.java | 7 +-
.../MultipleAnomaliesEmailContentFormatter.java | 11 +-
.../anomaly/ThirdEyeAnomalyApplication.java | 6 +-
.../anomaly/ThirdEyeAnomalyConfiguration.java | 10 +
.../AnomalyDetectionInputContextBuilder.java | 8 +-
.../anomaly/detection/DetectionTaskRunner.java | 2 +-
.../thirdeye/anomaly/events/EventFilter.java | 14 +-
.../anomaly/events/HolidayEventProvider.java | 20 +-
.../anomaly/merge/AnomalyTimeBasedSummarizer.java | 10 +-
.../anomaly/merge/TimeBasedAnomalyMerger.java | 5 +-
.../java/com/linkedin/thirdeye/api/Constants.java | 2 +
.../com/linkedin/thirdeye/api/TimeGranularity.java | 25 ++
.../dashboard/ThirdEyeDashboardApplication.java | 10 +-
.../resources/v2/BaselineParsingUtils.java | 115 +++++-
.../resources/v2/RootCauseMetricResource.java | 92 ++++-
.../dashboard/resources/v2/TimeSeriesResource.java | 5 +-
.../v2/rootcause/AnomalyEventFormatter.java | 4 -
.../thirdeye/dataframe/util/DataFrameUtils.java | 12 +
.../bao/jdbc/DetectionConfigManagerImpl.java | 35 ++
.../bao/jdbc/MergedAnomalyResultManagerImpl.java | 3 +
.../datalayer/pojo/DetectionAlertConfigBean.java | 25 +-
.../pinot/PinotDataSourceDimensionFilters.java | 2 +-
.../datasource/pinot/PinotDataSourceMaxTime.java | 25 +-
.../thirdeye/datasource/pinot/PqlUtils.java | 13 +-
.../linkedin/thirdeye/detection/DataProvider.java | 12 +
.../thirdeye/detection/DefaultDataProvider.java | 63 ++-
.../detection/DetectionMigrationResource.java | 229 ++++++++++-
.../thirdeye/detection/DetectionPipeline.java | 3 +-
.../thirdeye/detection/DetectionResource.java | 208 +++++++++-
.../thirdeye/detection/DetectionUtils.java | 4 +-
.../com/linkedin/thirdeye/detection/Pattern.java | 3 +-
.../thirdeye/detection/alert/AlertUtils.java | 5 +
.../detection/alert/DetectionAlertTaskRunner.java | 13 +
.../alert/StatefulDetectionAlertFilter.java | 12 +-
.../detection/alert/filter/LegacyAlertFilter.java | 94 +++--
.../ToAllRecipientsDetectionAlertFilter.java | 1 +
.../alert/scheme/DetectionEmailAlerter.java | 5 +-
.../DetectionAlertTimeWindowSuppressor.java | 2 +
.../detection/algorithm/DimensionWrapper.java | 63 ++-
.../thirdeye/detection/algorithm/MergeWrapper.java | 48 ++-
.../{Pattern.java => annotation/AlertScheme.java} | 21 +-
.../AlertSuppressor.java} | 21 +-
.../annotation/DetectionConfigurationResource.java | 1 +
.../registry/DetectionAlertRegistry.java | 107 +++++
.../{ => registry}/DetectionRegistry.java | 7 +-
.../AbsoluteChangeRuleAnomalyFilter.java | 97 +++++
.../components/AbsoluteChangeRuleDetector.java | 8 +-
.../PercentageChangeRuleAnomalyFilter.java | 96 +++++
.../components/PercentageChangeRuleDetector.java | 7 +-
.../SitewideImpactRuleAnomalyFilter.java | 9 +-
...va => AbsoluteChangeRuleAnomalyFilterSpec.java} | 32 +-
.../spec/AbsoluteChangeRuleDetectorSpec.java | 5 +-
... => PercentageChangeRuleAnomalyFilterSpec.java} | 32 +-
.../spec/PercentageChangeRuleDetectorSpec.java | 2 +-
.../spec/SitewideImpactRuleAnomalyFilterSpec.java | 2 +-
.../thirdeye/detection/spi/components/Tunable.java | 2 +-
.../detection/validators/ConfigValidator.java | 48 +++
.../validators/DetectionAlertConfigValidator.java | 109 +++++
.../detection/wrapper/AnomalyDetectorWrapper.java | 78 +++-
.../detection/wrapper/AnomalyFilterWrapper.java | 13 +-
.../wrapper/BaselineFillingMergeWrapper.java | 90 ++++-
.../wrapper/ChildKeepingMergeWrapper.java | 18 +-
.../yaml/CompositePipelineConfigTranslator.java | 170 ++++++--
.../yaml/YamlDetectionAlertConfigTranslator.java | 168 ++++++--
.../yaml/YamlDetectionConfigTranslator.java | 3 +-
.../yaml/YamlDetectionTranslatorLoader.java | 4 +-
.../thirdeye/detection/yaml/YamlResource.java | 449 +++++++++++++++++----
.../detector/email/filter/BaseAlertFilter.java | 2 +-
.../rootcause/timeseries/BaselineAggregate.java | 74 ++++
.../tracking/RequestStatisticsFormatter.java | 10 +-
.../thirdeye/detector/holiday-anomaly-report.ftl | 138 ++++---
.../com/linkedin/thirdeye/detector/lib/utils.ftl | 4 +-
.../thirdeye/detection/DetectionTestUtils.java | 11 +-
.../thirdeye/detection/MockDataProvider.java | 26 +-
.../filter/DimensionDetectionAlertFilterTest.java | 37 +-
.../alert/filter/LegacyAlertFilterTest.java | 55 ++-
.../ToAllRecipientsDetectionAlertFilterTest.java | 40 +-
.../stage/AnomalyDetectionStageWrapperTest.java | 2 +-
.../stage/BaselineRuleDetectionStageTest.java | 2 +-
.../AbsoluteChangeRuleAnomalyFilterTest.java | 90 +++++
.../PercentageChangeRuleAnomalyFilterTest.java | 89 ++++
.../PercentageChangeRuleDetectorTest.java | 23 ++
.../wrapper/AnomalyDetectorWrapperTest.java | 17 +-
.../wrapper/BaselineFillingMergeWrapperTest.java | 14 +-
.../wrapper/ChildKeepingMergeWrapperTest.java | 13 +-
.../CompositePipelineConfigTranslatorTest.java | 5 +-
.../YamlDetectionAlertConfigTranslatorTest.java | 100 ++++-
.../thirdeye/detection/yaml/YamlResourceTest.java | 140 +++++++
.../eventprovider/TestHolidayEventProvider.java | 1 +
.../detection/yaml/alertconfig/alert-config-1.yaml | 40 ++
.../detection/yaml/alertconfig/alert-config-2.yaml | 42 ++
.../detection/yaml/alertconfig/alert-config-3.yaml | 42 ++
.../detection/yaml/alertconfig/alert-config-4.yaml | 42 ++
.../compositePipelineTranslatorTestResult-1.json | 59 ++-
.../compositePipelineTranslatorTestResult-2.json | 15 +-
.../thirdeye/detection/yaml/pipeline-config-1.yaml | 15 +-
.../thirdeye/detection/yaml/pipeline-config-2.yaml | 4 +-
...multiple-anomalies-email-content-formatter.html | 68 ++--
431 files changed, 11554 insertions(+), 2663 deletions(-)
create mode 100644 docs/High-level-stream.png
create mode 100644 docs/Low-level-stream.png
create mode 100644 docs/Pinot - Hybrid flow.png
create mode 100644 docs/Pinot-Offline-only-flow.png
create mode 100644 docs/PlanNode.png
create mode 100644 docs/ServerSegmentCompletion.dot.png
create mode 100644 docs/architecture.rst
create mode 100644 docs/client_api.rst
create mode 100644 docs/commit-happy-path-1.png
create mode 100644 docs/commit-happy-path-2.png
create mode 100644 docs/committer-failed.png
create mode 100644 docs/controller-failed.png
create mode 100644 docs/controller-segment-completion.png
create mode 100644 docs/delayed-server.png
create mode 100644 docs/expressionTree.jpg
create mode 100644 docs/expressions_udf.rst
create mode 100644 docs/hlc-arch.png
create mode 100644 docs/image2014-11-12-1-54-56.png
create mode 100644 docs/image2014-11-12-19-54-12.png
create mode 100644 docs/image2014-11-12-20-59-50.png
create mode 100644 docs/image2014-11-13-11-21-7.png
create mode 100644 docs/image2014-11-13-11-22-57.png
create mode 100644 docs/image2015-4-14-194451.png
create mode 100644 docs/image2015-5-12-7-24-58.png
create mode 100644 docs/image2015-5-13 15-2-9.png
create mode 100644 docs/image2015-5-17 13-32-28.png
create mode 100644 docs/image2015-5-17 17-59-10.png
create mode 100644 docs/image2015-5-19 0-29-34.png
create mode 100644 docs/image2015-5-19 0-58-54.png
create mode 100644 docs/image2015-5-19 1-28-35.png
create mode 100644 docs/image2015-5-19 1-47-44.png
create mode 100644 docs/image2015-5-19 1-59-51.png
create mode 100644 docs/llc-arch.png
create mode 100644 docs/llc.rst
create mode 100644 docs/management_api.rst
create mode 100644 docs/multiple-server-failure.png
create mode 100644 docs/multitenancy.rst
create mode 100644 docs/parseTree.png
create mode 100644 docs/partition_aware_routing.rst
create mode 100644 docs/pinot-architecture.png
create mode 100644 docs/pinot_hadoop.rst
create mode 100644 docs/pluggable_streams.png
create mode 100644 docs/pluggable_streams.rst
create mode 100644 docs/pql_examples.rst
create mode 100644 docs/schema_timespec.rst
create mode 100644 docs/segment-consumer-fsm.png
create mode 100644 docs/segment-creation.png
create mode 100644 docs/segment-helix-fsm.png
create mode 100644 docs/segment_fetcher.rst
create mode 100644 docs/zk-setup.png
create mode 100644 docs/znode_layout.png
create mode 100644
pinot-broker/src/main/java/com/linkedin/pinot/broker/api/RequestStatistics.java
create mode 100644
pinot-broker/src/main/java/com/linkedin/pinot/broker/routing/selector/MergedSegmentSelector.java
create mode 100644
pinot-broker/src/main/java/com/linkedin/pinot/broker/routing/selector/SegmentSelector.java
create mode 100644
pinot-broker/src/main/java/com/linkedin/pinot/broker/routing/selector/SegmentSelectorProvider.java
create mode 100644
pinot-broker/src/test/java/com/linkedin/pinot/broker/routing/selector/MergedSegmentSelectorTest.java
rename pinot-broker/src/test/java/com/linkedin/pinot/broker/{routing =>
util}/FakePropertyStore.java (88%)
create mode 100644
pinot-common/src/main/java/com/linkedin/pinot/common/lineage/SegmentGroup.java
create mode 100644
pinot-common/src/main/java/com/linkedin/pinot/common/lineage/SegmentMergeLineage.java
create mode 100644
pinot-common/src/main/java/com/linkedin/pinot/common/lineage/SegmentMergeLineageAccessHelper.java
delete mode 100644
pinot-common/src/main/java/com/linkedin/pinot/common/utils/time/DefaultTimeConverter.java
create mode 100644
pinot-common/src/test/java/com/linkedin/pinot/common/lineage/SegmentMergeLineageTest.java
delete mode 100644
pinot-common/src/test/java/com/linkedin/pinot/common/utils/time/DefaultTimeConverterTest.java
create mode 100644
pinot-common/src/test/java/com/linkedin/pinot/common/utils/time/TimeConverterTest.java
create mode 100644
pinot-controller/src/main/java/com/linkedin/pinot/controller/ControllerLeadershipManager.java
rename
pinot-common/src/main/java/com/linkedin/pinot/common/utils/time/TimeConverterProvider.java
=>
pinot-controller/src/main/java/com/linkedin/pinot/controller/LeadershipChangeSubscriber.java
(58%)
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/bloom/BloomFilter.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/bloom/BloomFilterType.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/bloom/BloomFilterUtil.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/bloom/GuavaOnHeapBloomFilter.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/bloom/SegmentBloomFilterFactory.java
delete mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/operator/docidsets/BitmapBasedBlockDocIdSet.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/segment/creator/impl/bloom/BloomFilterCreator.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/segment/index/loader/bloomfilter/BloomFilterHandler.java
create mode 100644
pinot-core/src/main/java/com/linkedin/pinot/core/segment/index/readers/BloomFilterReader.java
copy pinot-core/src/main/java/com/linkedin/pinot/core/{common/DataSource.java
=> segment/index/readers/ImmutableRoaringBitmapWrapper.java} (57%)
create mode 100644
pinot-core/src/test/java/com/linkedin/pinot/core/data/recordtransformer/TimeTransformerTest.java
rename pinot-core/src/test/java/com/linkedin/pinot/{ =>
core}/operator/filter/AndFilterOperatorTest.java (77%)
create mode 100644
pinot-core/src/test/java/com/linkedin/pinot/core/operator/filter/FilterOperatorUtilsTest.java
rename pinot-core/src/test/java/com/linkedin/pinot/{ =>
core}/operator/filter/IntRangesTest.java (96%)
rename pinot-core/src/test/java/com/linkedin/pinot/{ =>
core}/operator/filter/OrFilterOperatorTest.java (82%)
create mode 100644
pinot-core/src/test/java/com/linkedin/pinot/core/operator/filter/TestFilterOperator.java
create mode 100644
pinot-core/src/test/java/com/linkedin/pinot/core/realtime/impl/kafka/KafkaLowLevelStreamConfigTest.java
create mode 100644
pinot-core/src/test/java/com/linkedin/pinot/core/segment/index/creator/BloomFilterCreatorTest.java
delete mode 100644
pinot-core/src/test/java/com/linkedin/pinot/operator/filter/FilterOperatorTestUtils.java
create mode 100644
pinot-core/src/test/java/com/linkedin/pinot/realtime/converter/RealtimeSegmentConverterTest.java
delete mode 100644
pinot-perf/src/main/java/com/linkedin/pinot/perf/PerfBenchmarkRunner.java
delete mode 100644
pinot-perf/src/main/java/com/linkedin/pinot/perf/PerfBenchmarkTest.java
create mode 100644
thirdeye/thirdeye-frontend/app/pods/partials/rootcause/select-metric-label/template.hbs
copy
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/{Pattern.java
=> annotation/AlertScheme.java} (58%)
copy
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/{Pattern.java
=> annotation/AlertSuppressor.java} (58%)
create mode 100644
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/annotation/registry/DetectionAlertRegistry.java
rename
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/annotation/{
=> registry}/DetectionRegistry.java (94%)
create mode 100644
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/components/AbsoluteChangeRuleAnomalyFilter.java
create mode 100644
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/components/PercentageChangeRuleAnomalyFilter.java
copy
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/spec/{PercentageChangeRuleDetectorSpec.java
=> AbsoluteChangeRuleAnomalyFilterSpec.java} (76%)
copy
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/spec/{PercentageChangeRuleDetectorSpec.java
=> PercentageChangeRuleAnomalyFilterSpec.java} (76%)
create mode 100644
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/validators/ConfigValidator.java
create mode 100644
thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/validators/DetectionAlertConfigValidator.java
create mode 100644
thirdeye/thirdeye-pinot/src/test/java/com/linkedin/thirdeye/detection/components/AbsoluteChangeRuleAnomalyFilterTest.java
create mode 100644
thirdeye/thirdeye-pinot/src/test/java/com/linkedin/thirdeye/detection/components/PercentageChangeRuleAnomalyFilterTest.java
create mode 100644
thirdeye/thirdeye-pinot/src/test/java/com/linkedin/thirdeye/detection/yaml/YamlResourceTest.java
create mode 100644
thirdeye/thirdeye-pinot/src/test/resources/com/linkedin/thirdeye/detection/yaml/alertconfig/alert-config-1.yaml
create mode 100644
thirdeye/thirdeye-pinot/src/test/resources/com/linkedin/thirdeye/detection/yaml/alertconfig/alert-config-2.yaml
create mode 100644
thirdeye/thirdeye-pinot/src/test/resources/com/linkedin/thirdeye/detection/yaml/alertconfig/alert-config-3.yaml
create mode 100644
thirdeye/thirdeye-pinot/src/test/resources/com/linkedin/thirdeye/detection/yaml/alertconfig/alert-config-4.yaml
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]