.then(metricData => { this.setProperties({ metricId: metric.id, isMetricSelected: true, isMetricDataLoading: false, showGraphLegend: true, selectedMetric: Object.assign(metricData, { color: 'blue' }), isMetricDataInvalid: !this.isMetricGraphable(metricData) }); // Dimensions are selected. Compile, rank, and send them to the graph. if(dimension) { const orderedDimensions = getTopDimensions(metricData, this.get('dimensionCount')); // Update graph only if we have new dimension data if (orderedDimensions.length) { this.setProperties({ isFetchingDimensions: false, isDimensionFetchDone: true, topDimensions: orderedDimensions, availableDimensions: orderedDimensions.length }); } } }).catch((error) => {
* @param {Object} metricData - returned metric timeseries data * @param {String} exploreDimensions - string of metric dimensions * @returns {undefined} * @private */ _setGraphProperties(metricData, exploreDimensions) { const alertDimension = exploreDimensions ? exploreDimensions.split(',')[0] : ''; Object.assign(metricData, { color: METRIC_DATA_COLOR }); this.controller.setProperties({ metricData, alertDimension, isMetricDataLoading: false }); // If alert has dimensions set, load them into graph once replay is done. if (exploreDimensions && !this.controller.isReplayPending) { const topDimensions = getTopDimensions(metricData, DIMENSION_COUNT); this.controller.setProperties({ topDimensions, isDimensionFetchDone: true, availableDimensions: topDimensions.length }); } }, /** * Tries find a specific metric id based on a common dataset string * @method _locateMetricId * @param {Array} metricList - list of metrics from metric-by-name lookup * @param {Object} alertData - currently loaded alert properties * @returns {Number} target metric id * @private