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 <apuc...@linkedin.com> 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: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org