Correct negative relative timestamps for node view

This commit is contained in:
Christoph Kluge 2023-08-03 12:27:03 +02:00
parent 1921be661b
commit 6e0c13df89

View File

@ -96,14 +96,28 @@
: null : null
const plotSeries = [{}] const plotSeries = [{}]
const plotData = [new Array(longestSeries)] const plotData = [new Array(longestSeries)]
for (let i = 0; i < longestSeries; i++) // TODO: Cache/Reuse this array?
plotData[0][i] = i * timestep if (forNode === true) {
// Negative Timestamp Buildup
for (let i = 0; i <= longestSeries; i++) {
plotData[0][i] = (longestSeries - i) * timestep * -1
}
} else {
// Positive Timestamp Buildup
for (let j = 0; j < longestSeries; j++) // TODO: Cache/Reuse this array?
plotData[0][j] = j * timestep
}
let plotBands = undefined let plotBands = undefined
if (useStatsSeries) { if (useStatsSeries) {
plotData.push(statisticsSeries.min) plotData.push(statisticsSeries.min)
plotData.push(statisticsSeries.max) plotData.push(statisticsSeries.max)
plotData.push(statisticsSeries.mean) plotData.push(statisticsSeries.mean)
if (forNode === true) { // timestamp 0 with null value for reversed time axis
if (plotData[1].length != 0) plotData[1].push(null)
if (plotData[2].length != 0) plotData[2].push(null)
if (plotData[3].length != 0) plotData[3].push(null)
}
plotSeries.push({ scale: 'y', width: lineWidth, stroke: 'red' }) plotSeries.push({ scale: 'y', width: lineWidth, stroke: 'red' })
plotSeries.push({ scale: 'y', width: lineWidth, stroke: 'green' }) plotSeries.push({ scale: 'y', width: lineWidth, stroke: 'green' })
plotSeries.push({ scale: 'y', width: lineWidth, stroke: 'black' }) plotSeries.push({ scale: 'y', width: lineWidth, stroke: 'black' })
@ -114,6 +128,7 @@
} else { } else {
for (let i = 0; i < series.length; i++) { for (let i = 0; i < series.length; i++) {
plotData.push(series[i].data) plotData.push(series[i].data)
if (forNode === true && plotData[1].length != 0) plotData[1].push(null) // timestamp 0 with null value for reversed time axis
plotSeries.push({ plotSeries.push({
scale: 'y', scale: 'y',
width: lineWidth, width: lineWidth,
@ -122,6 +137,10 @@
} }
} }
// console.log("Input Series: ", metric, series)
// console.log("Data: ", plotData)
const opts = { const opts = {
width, width,
height, height,
@ -130,14 +149,8 @@
{ {
scale: 'x', scale: 'x',
space: 35, space: 35,
incrs: timeIncrs(timestep, maxX), incrs: timeIncrs(timestep, maxX, forNode),
values: (_, vals) => { values: (_, vals) => vals.map(v => formatTime(v))
if (forNode === true) {
return vals.map(v => formatTime(v, forNode)).reverse()
} else {
return vals.map(v => formatTime(v))
}
}
}, },
{ {
scale: 'y', scale: 'y',
@ -261,20 +274,24 @@
let h = Math.floor(t / 3600) let h = Math.floor(t / 3600)
let m = Math.floor((t % 3600) / 60) let m = Math.floor((t % 3600) / 60)
if (h == 0) if (h == 0)
return forNode ? `-${m}m` : `${m}m` return `${m}m`
else if (m == 0) else if (m == 0)
return forNode ? `-${h}h` : `${h}h` return `${h}h`
else else
return forNode ? `-${h}:${m}h` : `${h}:${m}h` return `${h}:${m}h`
} }
export function timeIncrs(timestep, maxX) { export function timeIncrs(timestep, maxX, forNode) {
if (forNode === true) {
return [60, 300, 900, 1800, 3600, 7200, 14400, 21600] // forNode fixed increments
} else {
let incrs = [] let incrs = []
for (let t = timestep; t < maxX; t *= 10) for (let t = timestep; t < maxX; t *= 10)
incrs.push(t, t * 2, t * 3, t * 5) incrs.push(t, t * 2, t * 3, t * 5)
return incrs return incrs
} }
}
export function findThresholds(metricConfig, scope, subCluster) { export function findThresholds(metricConfig, scope, subCluster) {
// console.log('NAME ' + metricConfig.name + ' / SCOPE ' + scope + ' / SUBCLUSTER ' + subCluster.name) // console.log('NAME ' + metricConfig.name + ' / SCOPE ' + scope + ' / SUBCLUSTER ' + subCluster.name)