diff options
Diffstat (limited to 'app/assets/javascripts/monitoring/components/graph.vue')
-rw-r--r-- | app/assets/javascripts/monitoring/components/graph.vue | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/assets/javascripts/monitoring/components/graph.vue b/app/assets/javascripts/monitoring/components/graph.vue index 9e67a6f2146..72feefe33c9 100644 --- a/app/assets/javascripts/monitoring/components/graph.vue +++ b/app/assets/javascripts/monitoring/components/graph.vue @@ -1,8 +1,10 @@ <script> import { scaleLinear, scaleTime } from 'd3-scale'; import { axisLeft, axisBottom } from 'd3-axis'; - import { max, extent } from 'd3-array'; + import { max, extent, min } from 'd3-array'; import { select } from 'd3-selection'; + import { timeMinute } from 'd3-time'; + import { timeDifferenceMinutes } from '~/lib/utils/datetime_utility'; import GraphLegend from './graph/legend.vue'; import GraphFlag from './graph/flag.vue'; import GraphDeployment from './graph/deployment.vue'; @@ -14,7 +16,7 @@ import createTimeSeries from '../utils/multiple_time_series'; import bp from '../../breakpoints'; - const d3 = { scaleLinear, scaleTime, axisLeft, axisBottom, max, extent, select }; + const d3 = { scaleLinear, scaleTime, axisLeft, axisBottom, max, min, extent, select, timeMinute }; export default { components: { @@ -206,9 +208,23 @@ const allValues = this.timeSeries.reduce((all, { values }) => all.concat(values), []); axisXScale.domain(d3.extent(allValues, d => d.time)); axisYScale.domain([0, d3.max(allValues.map(d => d.value))]); + // time difference + const dateEnd = d3.max(allValues.map(d => d.time)); + const dateStart = d3.min(allValues.map(d => d.time)); + const timeDifference = timeDifferenceMinutes(dateStart, dateEnd); + + let timeTicks; + if (timeDifference > 90) { + timeTicks = 60; + } else if (timeDifference > 45 && timeDifference <= 90) { + timeTicks = 30; + } else if (timeDifference <= 45) { + timeTicks = 15; + } const xAxis = d3.axisBottom() .scale(axisXScale) + .ticks(d3.timeMinute.every(timeTicks)) .tickFormat(timeScaleFormat); const yAxis = d3.axisLeft() |