mirror of
https://github.com/fankes/beszel.git
synced 2025-10-20 02:09:28 +08:00
fix chart null values connecting after downtime
This commit is contained in:
@@ -55,13 +55,14 @@ function getTimeData(chartTime: ChartTimes, lastCreated: number) {
|
|||||||
|
|
||||||
// add empty values between records to make gaps if interval is too large
|
// add empty values between records to make gaps if interval is too large
|
||||||
function addEmptyValues<T extends SystemStatsRecord | ContainerStatsRecord>(
|
function addEmptyValues<T extends SystemStatsRecord | ContainerStatsRecord>(
|
||||||
records: T[],
|
prevRecords: T[],
|
||||||
|
newRecords: T[],
|
||||||
expectedInterval: number
|
expectedInterval: number
|
||||||
) {
|
) {
|
||||||
const modifiedRecords: T[] = []
|
const modifiedRecords: T[] = []
|
||||||
let prevTime = 0
|
let prevTime = (prevRecords.at(-1)?.created ?? 0) as number
|
||||||
for (let i = 0; i < records.length; i++) {
|
for (let i = 0; i < newRecords.length; i++) {
|
||||||
const record = records[i]
|
const record = newRecords[i]
|
||||||
record.created = new Date(record.created).getTime()
|
record.created = new Date(record.created).getTime()
|
||||||
if (prevTime) {
|
if (prevTime) {
|
||||||
const interval = record.created - prevTime
|
const interval = record.created - prevTime
|
||||||
@@ -183,7 +184,9 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
const ss_cache_key = `${system.id}_${chartTime}_system_stats`
|
const ss_cache_key = `${system.id}_${chartTime}_system_stats`
|
||||||
let systemData = (cache.get(ss_cache_key) || []) as SystemStatsRecord[]
|
let systemData = (cache.get(ss_cache_key) || []) as SystemStatsRecord[]
|
||||||
if (systemStats.status === 'fulfilled' && systemStats.value.length) {
|
if (systemStats.status === 'fulfilled' && systemStats.value.length) {
|
||||||
systemData = systemData.concat(addEmptyValues(systemStats.value, expectedInterval))
|
systemData = systemData.concat(
|
||||||
|
addEmptyValues(systemData, systemStats.value, expectedInterval)
|
||||||
|
)
|
||||||
if (systemData.length > 120) {
|
if (systemData.length > 120) {
|
||||||
systemData = systemData.slice(-100)
|
systemData = systemData.slice(-100)
|
||||||
}
|
}
|
||||||
@@ -194,7 +197,9 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
const cs_cache_key = `${system.id}_${chartTime}_container_stats`
|
const cs_cache_key = `${system.id}_${chartTime}_container_stats`
|
||||||
let containerData = (cache.get(cs_cache_key) || []) as ContainerStatsRecord[]
|
let containerData = (cache.get(cs_cache_key) || []) as ContainerStatsRecord[]
|
||||||
if (containerStats.status === 'fulfilled' && containerStats.value.length) {
|
if (containerStats.status === 'fulfilled' && containerStats.value.length) {
|
||||||
containerData = containerData.concat(addEmptyValues(containerStats.value, expectedInterval))
|
containerData = containerData.concat(
|
||||||
|
addEmptyValues(containerData, containerStats.value, expectedInterval)
|
||||||
|
)
|
||||||
if (containerData.length > 120) {
|
if (containerData.length > 120) {
|
||||||
containerData = containerData.slice(-100)
|
containerData = containerData.slice(-100)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user