Commit graph

20 commits

Author SHA1 Message Date
2bb901873f feat(agent): start Diagnostics.Writer when dump_dir is configured 2026-04-22 22:23:56 +02:00
3a32af4ff9 feat(agent): log outgoing sample to Diagnostics before push 2026-04-22 22:23:19 +02:00
5a9efdd482 feat(agent): log every shell command to Diagnostics 2026-04-22 22:22:31 +02:00
896044cb7f feat(agent): add Diagnostics.Writer GenServer 2026-04-22 22:19:51 +02:00
c72eed1307 feat(agent): add Diagnostics module with no-op default 2026-04-22 22:16:55 +02:00
1c289a5a0d feat(agent): add [debug] dump_dir config field 2026-04-22 22:15:01 +02:00
28a40a2650 chore(ui,agent): harden collector parsing, drop dead CSS, resilver label
Addresses final code review:
- to_int/1 now returns 0 on nil or unparseable strings instead of crashing
- remove unused .pool-row CSS (superseded by .pool-block)
- clamp capacity bar width to [0, 100] to prevent visual overflow
- pool_scrub_line/1 uses scan_function so resilver shows as "resilver..."
2026-04-22 18:06:17 +02:00
e763ea96bd feat(agent): enrich zpool summary with type, scan state, vdev list 2026-04-22 17:44:07 +02:00
663f7a6113 feat(agent): reporter schedules fast/medium/slow collection with bundled payloads 2026-04-21 22:36:14 +02:00
61fa959d52 feat(agent): system info collector for pveversion/zfs/apt 2026-04-21 22:35:32 +02:00
da5ed6cd08 feat(agent): vms/lxc collectors for runtime and detail with fixtures 2026-04-21 22:34:45 +02:00
ec7f08dfda feat(agent): pvesh storage collector 2026-04-21 22:33:27 +02:00
8c3e953e4e feat(agent): zfs collector for pools + datasets/snapshots with fixture tests 2026-04-21 22:32:36 +02:00
6fca450d7e feat(agent): Shell.run wrapper for testable external commands 2026-04-21 22:31:24 +02:00
4f82701956 fix(agent): jason-safe error entries + correct handle_info return
Errors produced by Collectors.Host were keyword tuples {:tag, msg}, which
Jason cannot encode — metric push crashed the channel. Convert them to
plain maps with :tag and :message fields.

Reporter.handle_info/2 returned {:ok, socket}, which Slipstream rejects
(GenServer-style {:noreply, socket} is the only valid return for that
callback, unlike handle_connect/handle_join/handle_disconnect).
2026-04-21 22:15:32 +02:00
bfe39e71e1 feat(agent): supervisor boots reporter when config is present 2026-04-21 22:09:29 +02:00
3ae38f95a9 feat(agent): slipstream reporter — join, push, auto-reconnect 2026-04-21 22:08:57 +02:00
ce828084c8 feat(agent): host collector for /proc loadavg, meminfo, uptime 2026-04-21 22:08:04 +02:00
e4db0beac6 feat(agent): toml config loader with defaults and validation 2026-04-21 22:07:06 +02:00
70923eebfa feat(agent): otp app scaffold with slipstream + toml deps 2026-04-21 22:05:49 +02:00