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 */ } });