From 396b2c3ecf7ccb6822cfb2e453800ac595c8bb93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Wed, 4 Feb 2026 01:44:40 +0100 Subject: [PATCH] Append real-time stats to CPU/RAM charts on each 15s tick Zero extra Prometheus queries - reuses existing instant stats data to grow chart series between 60s range query refreshes. Co-Authored-By: Claude Opus 4.5 --- src/lib/useEventStream.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/lib/useEventStream.ts b/src/lib/useEventStream.ts index b95c90e..98604ad 100644 --- a/src/lib/useEventStream.ts +++ b/src/lib/useEventStream.ts @@ -68,7 +68,28 @@ export function useEventStream() { es.addEventListener('stats', (e) => { try { const stats = JSON.parse(e.data); - setState(prev => ({ ...prev, stats })); + setState(prev => { + // Append latest stats as new chart data points (real-time feed) + if (prev.metrics) { + const now = Math.floor(Date.now() / 1000); + const sixHoursAgo = now - 6 * 3600; + const append = (series: Array<[number, number]>, value: number): Array<[number, number]> => { + const filtered = series.filter(([ts]) => ts > sixHoursAgo); + filtered.push([now, value]); + return filtered; + }; + return { + ...prev, + stats, + metrics: { + ...prev.metrics, + cpu: append(prev.metrics.cpu, stats.cpu_percent), + ram: append(prev.metrics.ram, stats.ram_percent), + }, + }; + } + return { ...prev, stats }; + }); } catch { /* ignore */ } });