Skip to content
Snippets Groups Projects
Commit 0e2a3543 authored by Jose Ivan Vargas Lopez's avatar Jose Ivan Vargas Lopez
Browse files

fix timescale prometheus charts overlapping

parent 7623cae9
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -291,6 +291,15 @@ export const getTimeframeWindow = (length, date) => {
return timeframe;
};
 
/**
* Returns the time difference between two dates in minutes
*
* @param {Date} dateStart
* @param {Date} dateEnd
*/
export const timeDifferenceMinutes = (dateStart, dateEnd) => (dateEnd - dateStart) / 1000 / 60;
window.gl = window.gl || {};
window.gl.utils = {
...(window.gl.utils || {}),
Loading
Loading
<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';
Loading
Loading
@@ -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: {
Loading
Loading
@@ -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()
Loading
Loading
Loading
Loading
@@ -170,3 +170,12 @@ describe('getTimeframeWindow', () => {
});
});
});
describe('timeDifferenceMinutes', () => {
it('returns the time difference between two dates in minutes', () => {
const dateStart = new Date('2018-03-08 12:00:00');
const dateEnd = new Date('2018-03-08 13:00:00');
expect(datetimeUtility.timeDifferenceMinutes(dateStart, dateEnd)).toEqual(60);
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment