diff options
author | Mike Greiling <mike@pixelcog.com> | 2017-11-05 22:10:56 -0600 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2017-11-06 14:07:09 -0600 |
commit | 1f7ecf9a6fee427a7ebe7968418e9cd95774e1de (patch) | |
tree | f7d7acd59487f5b06b75d20fc44046b17f8c72e8 /app | |
parent | 309c1e6b712b5839a451299b6b8f6bef7692352c (diff) | |
download | gitlab-ce-1f7ecf9a6fee427a7ebe7968418e9cd95774e1de.tar.gz |
process all queries within a graph
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/monitoring/utils/multiple_time_series.js | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/app/assets/javascripts/monitoring/utils/multiple_time_series.js b/app/assets/javascripts/monitoring/utils/multiple_time_series.js index 35c0a7f703b..9122c6e1e1e 100644 --- a/app/assets/javascripts/monitoring/utils/multiple_time_series.js +++ b/app/assets/javascripts/monitoring/utils/multiple_time_series.js @@ -11,8 +11,9 @@ const defaultColorPalette = { const defaultColorOrder = ['blue', 'orange', 'red', 'green', 'purple']; -export default function createTimeSeries(queries, graphWidth, graphHeight, graphHeightOffset) { - const queryData = queries[0]; +const defaultStyleOrder = ['solid', 'dashed', 'dotted']; + +function queryTimeSeries(query, graphWidth, graphHeight, graphHeightOffset, maxValue, lineStyle) { let usedColors = []; function pickColor(name) { @@ -32,17 +33,7 @@ export default function createTimeSeries(queries, graphWidth, graphHeight, graph return defaultColorPalette[pick]; } - const maxValues = queryData.result.map((timeSeries, index) => { - const maxValue = d3.max(timeSeries.values.map(d => d.value)); - return { - maxValue, - index, - }; - }); - - const maxValueFromSeries = _.max(maxValues, val => val.maxValue); - - return queryData.result.map((timeSeries, timeSeriesNumber) => { + return query.result.map((timeSeries, timeSeriesNumber) => { let metricTag = ''; let lineColor = ''; let areaColor = ''; @@ -55,7 +46,7 @@ export default function createTimeSeries(queries, graphWidth, graphHeight, graph timeSeriesScaleX.domain(d3.extent(timeSeries.values, d => d.time)); timeSeriesScaleX.ticks(d3.time.minute, 60); - timeSeriesScaleY.domain([0, maxValueFromSeries.maxValue]); + timeSeriesScaleY.domain([0, maxValue]); const defined = d => !isNaN(d.value) && d.value != null; @@ -73,8 +64,8 @@ export default function createTimeSeries(queries, graphWidth, graphHeight, graph .y1(d => timeSeriesScaleY(d.value)); const timeSeriesMetricLabel = timeSeries.metric[Object.keys(timeSeries.metric)[0]]; - const seriesCustomizationData = queryData.series != null && - _.findWhere(queryData.series[0].when, + const seriesCustomizationData = query.series != null && + _.findWhere(query.series[0].when, { value: timeSeriesMetricLabel }); if (seriesCustomizationData != null) { metricTag = seriesCustomizationData.value || timeSeriesMetricLabel; @@ -89,9 +80,26 @@ export default function createTimeSeries(queries, graphWidth, graphHeight, graph areaPath: areaFunction(timeSeries.values), timeSeriesScaleX, values: timeSeries.values, + lineStyle, lineColor, areaColor, metricTag, }; }); } + +export default function createTimeSeries(queries, graphWidth, graphHeight, graphHeightOffset) { + const maxValue = + d3.max(queries.map(query => ( + d3.max(query.result.map(resultSet => ( + d3.max(resultSet.values.map(d => d.value)) + ))) + ))); + + return queries.reduce((series, query, index) => { + const lineStyle = defaultStyleOrder[index % defaultStyleOrder.length]; + return series.concat( + queryTimeSeries(query, graphWidth, graphHeight, graphHeightOffset, maxValue, lineStyle), + ); + }, []); +} |