From 1ed13dffcb8507cbcf543abcd783ad51c2882fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Mon, 5 Oct 2026 14:50:28 -0400 Subject: [PATCH] wip-devtools --- system_monitor.go | 76 ++++++++++++++++ system_monitor_test.go | 82 ++++++++++++++++++ .../snapshots/darwin/system_monitor-dark.png | Bin 0 -> 29032 bytes .../snapshots/darwin/system_monitor-light.png | Bin 0 -> 28012 bytes 4 files changed, 158 insertions(+) create mode 100644 system_monitor.go create mode 100644 system_monitor_test.go create mode 100644 testdata/snapshots/darwin/system_monitor-dark.png create mode 100644 testdata/snapshots/darwin/system_monitor-light.png diff --git a/system_monitor.go b/system_monitor.go new file mode 100644 index 0000000..52f2ff2 --- /dev/null +++ b/system_monitor.go @@ -0,0 +1,76 @@ +package mujica + +import ( + "fmt" + "math" + "time" + + "github.com/egoist/mygo/ui" + + "mujicaui/theme" +) + +// MonitorMetric is one sampled resource; Samples line up with the shared times. +type MonitorMetric struct { + Name string + Unit string + Samples []float64 +} + +// SystemMonitorOptions configure a SystemMonitor. +type SystemMonitorOptions struct { + // Height of each chart; zero means 110. + Height float32 + Status DataStatus + Error string +} + +// SystemMonitorResult reports this frame's events. +type SystemMonitorResult struct { + Element *ui.Element + Retry bool +} + +// SystemMonitor stacks a live line chart per metric over one time axis, sampled by the caller. +func SystemMonitor(c *ui.Context, times []time.Time, metrics []MonitorMetric, opts SystemMonitorOptions) SystemMonitorResult { + if opts.Height < 0 { + panic("mujica: SystemMonitor Height is negative") + } + for i, m := range metrics { + if m.Name == "" || len(m.Samples) != len(times) { + panic(fmt.Sprintf("mujica: SystemMonitor metric %d needs a Name and one sample per time", i)) + } + } + h := opts.Height + if h == 0 { + h = 110 + } + k := Tokens(c) + u := Density(c).Unit() + var r SystemMonitorResult + r.Element = ui.Column(c).Shrink(0).Gap(u * 3) + r.Element.Children(func() { + for _, m := range metrics { + ui.Column(c).Key(m.Name).Gap(u).Children(func() { + ui.Row(c).Gap(u * 2).AlignItems(ui.Center).Children(func() { + ui.Text(c, m.Name).FontWeight(600).Grow(1) + last := math.NaN() + if n := len(m.Samples); n > 0 { + last = m.Samples[n-1] + } + if !math.IsNaN(last) && opts.Status == DataReady { + ui.Text(c, fmt.Sprintf("%s %s", sandboxNum(last), m.Unit)).FontFeatures("tnum"). + FontSize(FontSize(c, theme.CaptionSize+1)).TextColor(k.Text).Role(ui.RoleStatus) + } + }) + unit := m.Unit + res := LineChart(c, []ChartSeries{{Name: m.Name, Values: m.Samples}}, LineChartOptions{ + Frame: ChartFrame{Label: m.Name, Height: h, Status: opts.Status, Error: opts.Error}, + Times: times, Format: func(v float64) string { return sandboxNum(v) + " " + unit }, + }) + r.Retry = r.Retry || res.Retried() + }) + } + }) + return r +} diff --git a/system_monitor_test.go b/system_monitor_test.go new file mode 100644 index 0000000..cbc7edf --- /dev/null +++ b/system_monitor_test.go @@ -0,0 +1,82 @@ +package mujica + +import ( + "math" + "strings" + "testing" + "time" + + "github.com/egoist/mygo/ui" +) + +func monitorSample(n int) ([]time.Time, []MonitorMetric) { + t0 := time.Date(2026, 10, 5, 21, 0, 0, 0, time.UTC) + times := make([]time.Time, n) + cpu, mem := make([]float64, n), make([]float64, n) + for i := range n { + times[i] = t0.Add(time.Duration(i) * 5 * time.Second) + cpu[i] = 40 + 20*math.Sin(float64(i)/4) + mem[i] = 3.2 + float64(i)*0.02 + } + return times, []MonitorMetric{{Name: "CPU", Unit: "%", Samples: cpu}, {Name: "Memory", Unit: "GB", Samples: mem}} +} + +func TestSystemMonitorLiveAndKeyboard(t *testing.T) { + times, metrics := monitorSample(20) + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + SystemMonitor(c, times, metrics, SystemMonitorOptions{}) + }, 600, 420) + if !tt.HasText("3.6 GB") || !tt.HasText("20.0 %") { + t.Fatalf("latest samples missing: %q", tt.Texts()) + } + times, metrics = monitorSample(21) + tt.Frame() + if !tt.HasText("20.8 %") || tt.HasText("20.0 %") { + t.Fatalf("new sample: %q", tt.Texts()) + } + tt.Key(0, ui.KeyTab) // the legend key + tt.Key(0, ui.KeyTab) // the plot + tt.Key(0, ui.KeyEnd) + found := false + for _, s := range tt.Texts() { + found = found || strings.Contains(s, "21:01:40") + } + if !found { + t.Fatalf("keyboard readout: %q", tt.Texts()) + } +} + +func TestSystemMonitorStatesAndRules(t *testing.T) { + times, metrics := monitorSample(5) + retries := 0 + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if SystemMonitor(c, times, metrics[:1], SystemMonitorOptions{Status: DataFailed, Error: "agent offline"}).Retry { + retries++ + } + }, 600, 300) + if !tt.HasText("agent offline") { + t.Fatalf("error: %q", tt.Texts()) + } + _ = tt.Click("Retry") + if retries != 1 { + t.Fatal("retry not reported") + } + defer func() { + if recover() == nil { + t.Fatal("mismatched samples did not panic") + } + }() + ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + SystemMonitor(c, times, []MonitorMetric{{Name: "x", Samples: []float64{1}}}, SystemMonitorOptions{}) + }, 200, 200) +} + +func TestSystemMonitorSnapshot(t *testing.T) { + times, metrics := monitorSample(40) + snapshot(t, "system_monitor", 560, 380, func(c *ui.Context) { + ui.Column(c).Padding(16).Children(func() { SystemMonitor(c, times, metrics, SystemMonitorOptions{}) }) + }) +} diff --git a/testdata/snapshots/darwin/system_monitor-dark.png b/testdata/snapshots/darwin/system_monitor-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8123bcf19c7bb766870546afa342bd290a8b3034 GIT binary patch literal 29032 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 literal 0 HcmV?d00001 diff --git a/testdata/snapshots/darwin/system_monitor-light.png b/testdata/snapshots/darwin/system_monitor-light.png new file mode 100644 index 0000000000000000000000000000000000000000..f8eabe15fa0c50c28698de5ba248b0195a696209 GIT binary patch literal 28012 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