akshayrai closed pull request #3554: [TE] Make new alerter tag old anomalies as
notified
URL: https://github.com/apache/incubator-pinot/pull/3554
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/alert/content/MultipleAnomaliesEmailContentFormatter.java
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/alert/content/MultipleAnomaliesEmailContentFormatter.java
index dd82847d3c..88695c036c 100644
---
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/alert/content/MultipleAnomaliesEmailContentFormatter.java
+++
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/alert/content/MultipleAnomaliesEmailContentFormatter.java
@@ -160,7 +160,9 @@ public int compare(AnomalyResult o1, AnomalyResult o2) {
final DateTime eventStart = windowStart.minus(preEventCrawlOffset);
final DateTime eventEnd = windowEnd.plus(postEventCrawlOffset);
Map<String, List<String>> targetDimensions = new HashMap<>();
- targetDimensions.put(EVENT_FILTER_COUNTRY,
emailContentFormatterConfiguration.getHolidayCountriesWhitelist());
+ if (emailContentFormatterConfiguration.getHolidayCountriesWhitelist() !=
null) {
+ targetDimensions.put(EVENT_FILTER_COUNTRY,
emailContentFormatterConfiguration.getHolidayCountriesWhitelist());
+ }
List<EventDTO> holidays = getHolidayEvents(eventStart, eventEnd,
targetDimensions);
Collections.sort(holidays, new Comparator<EventDTO>() {
@Override
diff --git
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/EventFilter.java
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/EventFilter.java
index f61826f8ab..1dda23220a 100644
---
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/EventFilter.java
+++
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/EventFilter.java
@@ -27,8 +27,13 @@
import org.apache.commons.collections.MapUtils;
import com.linkedin.thirdeye.datalayer.dto.EventDTO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class EventFilter {
+ private static final Logger LOG = LoggerFactory.getLogger(EventFilter.class);
+
String eventType;
String serviceName;
String metricName;
@@ -152,6 +157,8 @@ public void setStartTime(long startTime) {
filteredEvents.addAll(allEvents);
}
}
+
+ LOG.info("Whitelisting complete. Returning {} fetched events after
whitelist", filteredEvents.size());
return filteredEvents;
}
diff --git
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/HolidayEventProvider.java
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/HolidayEventProvider.java
index 6455823ccd..d43cae3dbc 100644
---
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/HolidayEventProvider.java
+++
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/anomaly/events/HolidayEventProvider.java
@@ -32,12 +32,13 @@
@Override
public List<EventDTO> getEvents(EventFilter eventFilter) {
- LOG.info("Fetching all {} events between {} and {}",
eventFilter.getEventType(), eventFilter.getStartTime(),
eventFilter.getEndTime());
List<EventDTO> allEventsBetweenTimeRange =
eventDAO.findEventsBetweenTimeRange(
eventFilter.getEventType(),
eventFilter.getStartTime(),
eventFilter.getEndTime());
+ LOG.info("Fetched {} {} events between {} and {}",
allEventsBetweenTimeRange.size(),
+ eventFilter.getEventType(), eventFilter.getStartTime(),
eventFilter.getEndTime());
return EventFilter.applyDimensionFilter(allEventsBetweenTimeRange,
eventFilter.getTargetDimensionMap());
}
diff --git
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/alert/DetectionAlertTaskRunner.java
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/alert/DetectionAlertTaskRunner.java
index 50285cf6c3..c88263c8f7 100644
---
a/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/alert/DetectionAlertTaskRunner.java
+++
b/thirdeye/thirdeye-pinot/src/main/java/com/linkedin/thirdeye/detection/alert/DetectionAlertTaskRunner.java
@@ -23,8 +23,10 @@
import com.linkedin.thirdeye.anomaly.utils.ThirdeyeMetricsUtil;
import com.linkedin.thirdeye.datalayer.bao.DatasetConfigManager;
import com.linkedin.thirdeye.datalayer.bao.DetectionAlertConfigManager;
+import com.linkedin.thirdeye.datalayer.bao.MergedAnomalyResultManager;
import com.linkedin.thirdeye.datalayer.bao.MetricConfigManager;
import com.linkedin.thirdeye.datalayer.dto.DetectionAlertConfigDTO;
+import com.linkedin.thirdeye.datalayer.dto.MergedAnomalyResultDTO;
import com.linkedin.thirdeye.datasource.DAORegistry;
import com.linkedin.thirdeye.datasource.ThirdEyeCacheRegistry;
import com.linkedin.thirdeye.datasource.loader.AggregationLoader;
@@ -49,10 +51,12 @@
private final DetectionAlertTaskFactory detAlertTaskFactory;
private CurrentAndBaselineLoader currentAndBaselineLoader;
private DetectionAlertConfigManager alertConfigDAO;
+ private MergedAnomalyResultManager mergedAnomalyDAO;
public DetectionAlertTaskRunner() {
this.detAlertTaskFactory = new DetectionAlertTaskFactory();
this.alertConfigDAO =
DAORegistry.getInstance().getDetectionAlertConfigManager();
+ this.mergedAnomalyDAO =
DAORegistry.getInstance().getMergedAnomalyResultDAO();
DatasetConfigManager datasetDAO =
DAORegistry.getInstance().getDatasetConfigDAO();
MetricConfigManager metricDAO =
DAORegistry.getInstance().getMetricConfigDAO();
@@ -102,6 +106,13 @@ private void
updateAlertConfigWatermarks(DetectionAlertFilterResult result, Dete
DetectionAlertFilter alertFilter =
detAlertTaskFactory.loadAlertFilter(alertConfig, System.currentTimeMillis());
DetectionAlertFilterResult result = alertFilter.run();
+ // TODO: The old UI relies on notified tag to display the anomalies.
After the migration
+ // we need to clean up all references to notified tag.
+ for (MergedAnomalyResultDTO anomaly : result.getAllAnomalies()) {
+ anomaly.setNotified(true);
+ mergedAnomalyDAO.update(anomaly);
+ }
+
// Suppress alerts if any and get the filtered anomalies to be notified
Set<DetectionAlertSuppressor> alertSuppressors =
detAlertTaskFactory.loadAlertSuppressors(alertConfig);
for (DetectionAlertSuppressor alertSuppressor : alertSuppressors) {
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]