Commit graph

27 commits

Author SHA1 Message Date
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
1f0ab6dd1e test(agent): end-to-end Diagnostics test with running Writer 2026-04-22 22:21:17 +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
041dfc8fc0 test(agent): cover stripe, mixed, and special-vdev pool_type classification 2026-04-22 17:48:45 +02:00
e763ea96bd feat(agent): enrich zpool summary with type, scan state, vdev list 2026-04-22 17:44:07 +02:00
bb2a88fb15 fix(agent): bump Dockerfile Zig to 0.15.2 for burrito 1.3
Burrito 1.3 now requires Zig 0.15.2 (build fails with 'Your Zig version
does not match the one Burrito requires! We need 0.15.2, you have: 0.13.0').

Zig also changed its tarball naming around 0.15: the arch now comes
before 'linux' (zig-x86_64-linux-VER.tar.xz instead of
zig-linux-x86_64-VER.tar.xz), so both the download URL and the
post-extract symlink glob had to change.
2026-04-22 09:23:35 +02:00
b06668fcbb docs: deployment overview + LXC server deploy + per-host agent install 2026-04-22 08:42:25 +02:00
2ea5dd4b54 feat(agent): docker-based cross-compile for linux binaries 2026-04-22 08:27:25 +02:00
7ae14f35dd feat(agent): systemd unit + release env.sh for root+journald install 2026-04-22 08:27:02 +02:00
d266a7b56c feat(agent): burrito dep + release config for linux_amd64/arm64 + macos 2026-04-22 08:26:47 +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
7ec38e0fd6 feat(agent): expose compile-time version 2026-04-21 22:06:25 +02:00
70923eebfa feat(agent): otp app scaffold with slipstream + toml deps 2026-04-21 22:05:49 +02:00