// the find
brendangregg/dtrace-cloud-tools
Some DTrace tools written for the SmartOS/SmartDataCenter cloud (illumos-based)
A collection of DTrace scripts Brendan Gregg wrote while chasing latency problems on a SmartOS/SmartDataCenter cloud. They cover the kernel (TCP, disk, ZFS, zones), KVM, and application runtimes and databases (MySQL, Postgres, Redis, Node.js, Erlang, Go, Apache). It is a reference for DTrace probe design and for illumos-based hosts, and of little use to most people today: the last push was in November 2013 and the README says the scripts are unsupported.
Each application gets its own directory with a recognisable pattern: latency distributions (`*_latency.d`), slow-event tracers (`*slower.d`, `*slow.d`), and off-CPU or file-system breakdowns, so you can see one author's approach to the same question across several layers. The Go directory commits sample output (`go_flow.txt`, `go_pkgcounts.txt`, and so on) next to each script, so you can judge what a script prints before running it on a production box. Scripts that depend on kernel internals are split into `_sdc5` and `_sdc6` variants instead of one script full of conditionals, which makes the platform dependency visible in the filename. The `smartmachine/` directory separates what runs inside a zone from what runs in the global zone, which is the right boundary for this kind of tooling.
The target platform is gone. SmartOS/SDC is no longer maintained as a cloud stack, and nothing has been pushed since 2013, so there is no sign of updates for newer illumos, OmniOS, or DTrace-on-Linux environments. Most scripts attach fbt and pid probes to specific function names and application versions, so a kernel or MySQL/Node release that renames or inlines a function will make the script error out or print nothing, and the tree shows no tests or version checks to catch that. The `_sdc5`/`_sdc6` pairs double the maintenance surface, and half of each pair now targets a kernel nobody runs. Per-script usage is mostly undocumented: only a few directories have a README, and most scripts have no description of their arguments or output columns.