Skip to content

v0.46.0 — module toggles + standalone xtop-agent (14MB, no TUI)

Choose a tag to compare

@ftahirops ftahirops released this 25 Apr 08:18
· 165 commits to main since this release

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 overrides

User 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-agent

Use 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-agent running for 12 s pushed heartbeats with xtop_rss_mb=17, xtop_mode=lean, visible on the web dashboard's per-host self-stat chips.
  • xtop modules show renders 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-agent

Roadmap

  • v0.46.1 — TUI overlay (M key) for live module toggling without restart
  • v0.47.0 — Baseline-aware incident suppression (skip incidents within host's own historical p95)