Pick a duration + CPU threshold, hit Start. The agent runs a sampler in the background — every time CPU crosses the threshold it grabs the top 25 processes, the active Postgres queries, the MySQL processlist. Auto-stops after the window or 20 samples. AI reads every sample and names the culprit.
By the time you are on the box, the process that pinned the CPU has exited. The sampler is already there.
It waits for CPU to cross your line, takes a full snapshot, and stops itself when the window ends or the sample cap is hit.
The AI reads every sample and tells you what they have in common, which is faster than diffing them yourself.
You choose the metric, the threshold and how long to watch. Nothing is captured until the condition is met.
Crossing the threshold starts a series of snapshots — processes, connections, disk and memory at that moment.
The capture ends itself at the window or the snapshot cap, and the run is summarised rather than handed over raw.
top -bn2 -d1 every 60 s, < 0.1 % CPU. When above: full sample every 30 s, < 1 % CPU. Sample inserts are bulk-batched.php-fpm doing the same kind of work, that's the answer.Diagnostic Capture from Starter. Server-side. No long-running daemon.