package com.linkedin.thirdeye.anomaly.merge;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
/**
* Merge Configuration to hint merge module to fetch anomalies by specific group and apply certain
* merge rule
* <p/>
* Check following merge parameters:
* <p/>
* mergeStrategy : dictates how anomalies should be grouped
* <p/>
* sequentialAllowedGap: allowed gap in milli seconds between sequential anomalies
* <p/>
* mergeDuration : length of the merged anomaly in milli seconds
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class AnomalyMergeConfig {
private AnomalyMergeStrategy mergeStrategy = AnomalyMergeStrategy.FUNCTION;
private long sequentialAllowedGap = 30_000; // 30 seconds
private long maxMergeDurationLength = 12 * 60 * 60 * 1000; // 12 hours
public AnomalyMergeStrategy getMergeStrategy() {
return mergeStrategy;
}
public void setMergeStrategy(AnomalyMergeStrategy mergeStrategy) {
this.mergeStrategy = mergeStrategy;
}
public long getSequentialAllowedGap() {
return sequentialAllowedGap;
}
public void setSequentialAllowedGap(long sequentialAllowedGap) {
this.sequentialAllowedGap = sequentialAllowedGap;
}
public long getMaxMergeDurationLength() {
return maxMergeDurationLength;
}
public void setMaxMergeDurationLength(long mergeDuration) {
this.maxMergeDurationLength = mergeDuration;
}
}