This is an automated email from the ASF dual-hosted git repository.
apucher 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 16c5926 [TE] rootcause - redo route hooks (#3547)
16c5926 is described below
commit 16c592644936194f4c1be259eaa771f792c96f14
Author: Alexander Pucher <[email protected]>
AuthorDate: Mon Nov 26 12:28:16 2018 -0800
[TE] rootcause - redo route hooks (#3547)
This PR reworks the query params for initial setup of RCA to avoid
namespace clashes and fix anomalyRange and analysisRange
---
.../app/pods/rootcause/controller.js | 8 +--
.../thirdeye-frontend/app/pods/rootcause/route.js | 82 ++++++++++++----------
2 files changed, 47 insertions(+), 43 deletions(-)
diff --git a/thirdeye/thirdeye-frontend/app/pods/rootcause/controller.js
b/thirdeye/thirdeye-frontend/app/pods/rootcause/controller.js
index a4a3980..f8ebeee 100644
--- a/thirdeye/thirdeye-frontend/app/pods/rootcause/controller.js
+++ b/thirdeye/thirdeye-frontend/app/pods/rootcause/controller.js
@@ -57,10 +57,10 @@ export default Controller.extend({
'contextUrnsInit',
'selectedUrnsInit',
'anomalyUrnsInit',
- 'anomalyRange',
- 'analysisRange',
- 'granularity',
- 'compareMode'
+ 'anomalyRangeInit',
+ 'analysisRangeInit',
+ 'granularityInit',
+ 'compareModeInit'
],
//
diff --git a/thirdeye/thirdeye-frontend/app/pods/rootcause/route.js
b/thirdeye/thirdeye-frontend/app/pods/rootcause/route.js
index 5a35a81..9aad462 100644
--- a/thirdeye/thirdeye-frontend/app/pods/rootcause/route.js
+++ b/thirdeye/thirdeye-frontend/app/pods/rootcause/route.js
@@ -110,6 +110,16 @@ const augmentFrontendMetrics = (urns) => {
};
/**
+ * A variation of Object.assign() that returns the original and overrides
undefined values only
+ */
+const assignDefaults = (base, defaults) => {
+ Object.keys(base)
+ .filter(key => typeof(base[key]) === 'undefined')
+ .forEach(key => base[key] = defaults[key]);
+ return base;
+};
+
+/**
* Returns the array for start/end dates of the analysis range
*/
const toAnalysisRangeArray = (anomalyStart, anomalyEnd, metricGranularity) => {
@@ -153,8 +163,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
},
model(params) {
- const { metricId, sessionId, anomalyId, anomalyRange, analysisRange,
granularity, compareMode } = params;
- let { contextUrnsInit, selectedUrnsInit, anomalyUrnsInit } = params;
+ const { metricId, sessionId, anomalyId } = params;
+ let { contextUrnsInit, selectedUrnsInit, anomalyUrnsInit,
anomalyRangeInit, analysisRangeInit, compareModeInit, granularityInit } =
params;
const isDevEnv = config.environment === 'development';
let metricUrn, metricEntity, session, anomalyUrn, anomalyEntity,
anomalySessions;
@@ -174,14 +184,14 @@ export default Route.extend(AuthenticatedRouteMixin, {
session = fetch(`/session/${sessionId}`).then(checkStatus).catch(() =>
{});
}
- let anomalyRangeStart, anomalyRangeEnd;
- if (anomalyRange) {
- [anomalyRangeStart, anomalyRangeEnd] = anomalyRange.split(',').map(r =>
parseInt(r, 10));
+ let anomalyRange;
+ if (anomalyRangeInit) {
+ anomalyRange = anomalyRangeInit.split(',').map(r => parseInt(r, 10));
}
- let analysisRangeStart, analysisRangeEnd;
- if (analysisRange) {
- [analysisRangeStart, analysisRangeEnd] = analysisRange.split(',').map(r
=> parseInt(r, 10));
+ let analysisRange;
+ if (analysisRangeInit) {
+ analysisRange = analysisRangeInit.split(',').map(r => parseInt(r, 10));
}
let contextUrnsPredefined;
@@ -213,12 +223,10 @@ export default Route.extend(AuthenticatedRouteMixin, {
contextUrnsPredefined,
selectedUrnsPredefined,
anomalyUrnsPredefined,
- anomalyRangeStart,
- anomalyRangeEnd,
- analysisRangeStart,
- analysisRangeEnd,
- granularity,
- compareMode
+ anomalyRange,
+ analysisRange,
+ granularity: granularityInit,
+ compareMode: compareModeInit
});
},
@@ -238,46 +246,45 @@ export default Route.extend(AuthenticatedRouteMixin, {
afterModel(model, transition) {
const defaultParams = {
- anomalyRangeStart: makeTime().startOf('hour').subtract(3,
'hour').valueOf(),
- anomalyRangeEnd: makeTime().startOf('hour').valueOf(),
- analysisRangeStart: makeTime().startOf('day').subtract(6,
'day').valueOf(),
- analysisRangeEnd: makeTime().startOf('day').add(1, 'day').valueOf(),
+ anomalyRange: [
+ makeTime().startOf('hour').subtract(3, 'hour').valueOf(),
+ makeTime().startOf('hour').valueOf()
+ ],
+ analysisRange: [
+ makeTime().startOf('day').subtract(6, 'day').valueOf(),
+ makeTime().startOf('day').add(1, 'day').valueOf()
+ ],
granularity: '1_HOURS',
compareMode: 'WoW'
};
// default params
- const { queryParams } = transition;
- const newModel = Object.assign(model, { ...defaultParams, ...queryParams
});
+ assignDefaults(model, defaultParams);
// load latest saved session for anomaly
const { anomalySessions } = model;
if (!_.isEmpty(anomalySessions)) {
const mostRecent = _.last(_.sortBy(anomalySessions, 'updated'));
- Object.assign(newModel, {
- anomalyId: null,
- anomalyUrn: null,
- anomalyContext: null,
- sessionId: mostRecent.id,
- session: mostRecent
- });
+ model.anomalyId = null;
+ model.anomalyUrn = null;
+ model.anomalyContext = null;
+ model.sessionId = mostRecent.id;
+ model.session = mostRecent;
// NOTE: apparently this does not abort the ongoing transition
this.transitionTo({ queryParams: { sessionId: mostRecent.id, anomalyId:
null } });
}
- return newModel;
+ return model;
},
setupController(controller, model) {
this._super(...arguments);
const {
- analysisRangeStart,
- analysisRangeEnd,
- anomalyRangeStart,
- anomalyRangeEnd,
+ analysisRange,
+ anomalyRange,
granularity,
compareMode,
metricId,
@@ -293,9 +300,6 @@ export default Route.extend(AuthenticatedRouteMixin, {
anomalyUrnsPredefined
} = model;
- const anomalyRange = [anomalyRangeStart, anomalyRangeEnd];
- const analysisRange = [analysisRangeStart, analysisRangeEnd];
-
// default blank context
let context = {
urns: new Set(),
@@ -461,10 +465,10 @@ export default Route.extend(AuthenticatedRouteMixin, {
contextUrnsInit: undefined,
selectedUrnsInit: undefined,
anomalyUrnsInit: undefined,
- anomalyRange: undefined,
- analysisRange: undefined,
- granularity: undefined,
- compareMode: undefined
+ anomalyRangeInit: undefined,
+ analysisRangeInit: undefined,
+ granularityInit: undefined,
+ compareModeInit: undefined
});
},
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]