You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ak...@apache.org on 2020/07/24 22:06:54 UTC
[incubator-pinot] branch master updated: [TE] pinot -
harleyjj/detectionutils - return current when predicted baseline cannot be
trained (#5736)
This is an automated email from the ASF dual-hosted git repository.
akshayrai09 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 2af8d8e [TE] pinot - harleyjj/detectionutils - return current when predicted baseline cannot be trained (#5736)
2af8d8e is described below
commit 2af8d8ee8b6a7587d988d29453379ecc375e5997
Author: Harley Jackson <hj...@linkedin.com>
AuthorDate: Fri Jul 24 15:06:10 2020 -0700
[TE] pinot - harleyjj/detectionutils - return current when predicted baseline cannot be trained (#5736)
*When detection/predicted-baseline/{anomalyId} endpoint is called and there is insufficient data to generate the baseline,
an error is currently returned.
*This fix returns the current time series instead, so that data will still be displayed in the graph.
---
.../apache/pinot/thirdeye/detection/DetectionUtils.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/DetectionUtils.java b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/DetectionUtils.java
index 4352d1a..f0eeb2f 100644
--- a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/DetectionUtils.java
+++ b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/DetectionUtils.java
@@ -252,6 +252,7 @@ public class DetectionUtils {
long start, long end, DetectionPipelineLoader loader, DataProvider provider) throws Exception {
String baselineProviderComponentName = anomaly.getProperties().get(PROP_BASELINE_PROVIDER_COMPONENT_NAME);
BaselineProvider baselineProvider = new RuleBaselineProvider();
+ TimeSeries returnTimeSeries;
if (baselineProviderComponentName != null && config != null &&
config.getComponentSpecs().containsKey(baselineProviderComponentName)) {
@@ -265,7 +266,20 @@ public class DetectionUtils {
InputDataFetcher dataFetcher = new DefaultInputDataFetcher(provider, config.getId());
baselineProvider.init(spec, dataFetcher);
}
- return baselineProvider.computePredictedTimeSeries(MetricSlice.from(metricId, start, end, filters));
+
+ try {
+ returnTimeSeries = baselineProvider.computePredictedTimeSeries(MetricSlice.from(metricId, start, end, filters));
+ } catch (Exception e) {
+ // send current if the predicted baseline can't be trained
+ BaselineProvider alternateProvider = new RuleBaselineProvider();
+ RuleBaselineProviderSpec spec = new RuleBaselineProviderSpec();
+ spec.setOffset("current");
+ InputDataFetcher dataFetcher = new DefaultInputDataFetcher(provider, config.getId());
+ alternateProvider.init(spec, dataFetcher);
+ returnTimeSeries = alternateProvider.computePredictedTimeSeries(MetricSlice.from(metricId, start, end, filters));
+ }
+
+ return returnTimeSeries;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org