Repository navigation
v0.46.0 — module toggles + standalone xtop-agent (14MB, no TUI)
Two features in one release
1. Module toggle config (was scoped as v0.45.0)
Operators can now control exactly which collectors xtop runs without recompiling. The configuration lives at ~/.xtop/modules.json and is honored by both the full xtop binary (TUI + daemon) and the new xtop-agent binary.
Four tiers organize the 26 collectors:
- Essential (9 collectors) — RCA core, can't be disabled. PSI, CPU, memory, disk, network, filesystem, process, identity, sysinfo.
- Standard (5) — recommended, light cost. cgroup, runtime, apps, socket, softirq.
- Optional (8) — medium cost, opt-in. eBPF sentinel, SMART, GPU, sysctl, logs, healthcheck, diag, security.
- Heavy (6) — investigation only. deleted-open, fileless, bigfiles, deep-scan, profiler, proxmox.
Four profiles as one-click presets:
| Profile | Use | Modules on |
|---|---|---|
minimal |
Lowest cost | Essential only |
standard |
Recommended fleet agent | + cgroup, runtime, apps, ebpf-sentinel |
sre |
TUI / workstation | + all Optional |
investigation |
Active troubleshooting | + all Heavy |
New CLI subcommand:
xtop modules # show current state, tiered table
xtop modules profile sre # switch profile
xtop modules disable smart # force-off a single module
xtop modules enable smart # remove the override
xtop modules reset # clear all overridesUser overrides take final precedence over the profile. Essential collectors can never be turned off.
2. Standalone xtop-agent binary
A new entry point: cmd/xtop-agent/main.go. 14 MB (vs 24 MB for full xtop), 17 MB RSS at runtime (verified on bastion). No TUI, no Bubbletea, no lipgloss, no app deep modules pulled into the binary.
Use the agent on production hosts:
sudo xtop-agent --hub=http://hub.example:9898 --token=$TOKEN
# or with env:
export XTOP_FLEET_HUB=http://hub.example:9898
export XTOP_FLEET_TOKEN=...
sudo xtop-agentUse the full xtop on operator workstations for the interactive TUI.
The deb ships both binaries:
/usr/local/bin/xtop # 24 MB — full TUI, hub, all subcommands
/usr/local/bin/xtop-agent # 14 MB — headless agent only
Existing xtop --daemon --fleet-hub=... keeps working unchanged for backward compat. New deployments should prefer xtop-agent for clarity and footprint.
Verified end-to-end
On the bastion:
xtop-agentrunning for 12 s pushed heartbeats withxtop_rss_mb=17,xtop_mode=lean, visible on the web dashboard's per-host self-stat chips.xtop modules showrenders the tiered catalog correctly with state/cost/description columns.- 11 module-config tests + 4 collector-cost tests pass; full
go test ./...clean.
Upgrade
wget https://github.com/ftahirops/xtop/releases/download/v0.46.0/xtop_0.46.0-1_amd64.deb
sudo dpkg -i xtop_0.46.0-1_amd64.deb
# On hub host:
sudo systemctl restart xtop-hub
# On agent hosts — switch from xtop --daemon to xtop-agent:
sudo systemctl edit xtop-agent
# in the override, change ExecStart to:
# ExecStart=/usr/local/bin/xtop-agent --hub=${XTOP_FLEET_HUB} --token=${XTOP_FLEET_TOKEN}
sudo systemctl daemon-reload
sudo systemctl restart xtop-agentRoadmap
- v0.46.1 — TUI overlay (
Mkey) for live module toggling without restart - v0.47.0 — Baseline-aware incident suppression (skip incidents within host's own historical p95)