feat(webui): server-side SVG charts + reanimator-chart viewer

Metrics:
- Replace canvas JS charts with server-side SVG via go-analyze/charts
- Add ring buffers (120 samples) for CPU temp and power
- /api/metrics/chart/{name}.svg endpoint serves live SVG, polled every 2s

Dashboard:
- Replace custom renderViewerPage with viewer.RenderHTML() from reanimator/chart submodule
- Mount chart static assets at /chart/static/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-27 23:07:47 +03:00
parent d50760e7c6
commit ff0acc3698
5 changed files with 179 additions and 95 deletions

View File

@@ -423,6 +423,16 @@ func (h *handler) handleAPIMetricsStream(w http.ResponseWriter, r *http.Request)
return
case <-ticker.C:
sample := platform.SampleLiveMetrics()
// Feed ring buffers for server-side SVG charts
for _, t := range sample.Temps {
if t.Name == "CPU" {
h.ringCPUTemp.push(t.Celsius)
break
}
}
h.ringPower.push(sample.PowerW)
b, err := json.Marshal(sample)
if err != nil {
continue