Awesome DTrace
A curated list of awesome DTrace books, articles, videos, tools and resources.
Contents
Learn
Recommended reading for learning DTrace.
Books
- Dynamic Tracing Guide - Illumos.org DTrace guide.
- DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X, and FreeBSD - Official DTrace book.
- Dynamic Tracing with DTrace & SystemTap - A book introduces both DTrace and SystemTap.
Other
- dtrace(1m) man page - DTrace manual page.
- DTrace cheatsheet - DTrace cheatsheet by Brendan Gregg.
- DTrace one-liners - DTrace one liners. Handy commands.
- DTrace one-liners (FreeBSD) - DTrace one liners from FreeBSD.
- DTrace QuickStart - DTrace quick starting guide.
- Using DTrace stories - A collection of using DTrace to debug system stories.
- Advanced DTrace Tips, Tricks and Gotchas - A collection of advanced tips for using DTrace.
Articles
Interesting articles about DTrace and real-world use cases.
PID Provider
- pid provider: entry probe - DTrace PID Provider.
- pid provider: entry arguments - DTrace PID Provider Arguments.
- pid provider: return - DTrace PID Provider return.
- pid provider: instructions - DTrace PID Provider Instructions.
- pid provider: overhead - DTrace PID Provider Overhead.
- pid provider exposed - PID providers internals by Adam Leventhal.
- When magic collides - PID provider bug deep dive by Bryan Cantrill.
USDT provider
- Understanding DTrace ustack helpers - DTrace ustack helpers.
- USDT Providers Redux - Reference for building USDT providers in custom applications.
Sysevent provider
- DTrace sysevent provider - Solaris/illumos sysevent provider for DTrace.
Ruby and DTrace
- Using DTrace to measure mutex contention in Ruby - Mutex contention measuring in Ruby.
Visualization methods
- Flamegraphs - A visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.
- Heat Maps - Heat maps allow three dimensions of data to be visualized, similar to weather radar maps where color is used as a dimension.
Videos
Interesting videos about DTrace.
- DTrace review - Bryan Cantrill explains how to significantly improve debugging both for development and live systems with DTrace.
dtrace.conf
-
- Introduction
- (Useful!) DTrace intro
- CTF Everywhere!
- Distributed DTrace
- DTracign Apps
- DTrace and JSON: Together at last!
- ASSERT() as a DTrace probe (and why I need some help)
- Implementing (or not) fds[] in FreeBSD
- OpenDTrace
- DTrace Performance Improvements with Always-on Instrumentation
- D language improvements
- D Syntactic Sugar
- DTrace and Go
- DTrace and Postgres
- DTrace in the Zone
- DTrace ustack() performance improvements
- DTrace Exploitation
Software
List of software with DTrace support.
Programming languages
Erlang
- Erlang - DTrace and Erlang/OTP.
Lua
- lua-usdt - Libusdt bindings for Lua.
Node.js
- node-dtrace-provider - Native DTrace probes for Node.js apps.
Perl
- perl-Devel-DTrace-Provider - Perl wrapper for libusdt.
PHP
- PHP - Using PHP and DTrace.
Python
- Python - DTrace patch for Python 2.7.x and 3.x.
- python-usdt - Libusdt bindings for Python.
Ruby
Databases
- MySQL - MySQL DTrace probes.
- PostgreSQL - PostgreSQL DTrace probes.
Webservers
- mod_usdt - "httpd" DTrace provider.
Visualization
- FlameGraph - Stack trace visualizer.
- node-stackvis - Stack trace visualizer.
Tools
- DTraceToolkit - A collection of useful documented DTrace scripts.
- dtrace-cloud-tools - DTrace tools written for the SmartOS/SmartDataCenter cloud (illumos-based).
- pgsql tools - Report top-level PostgreSQL stats.
- portsnoop - Trace event port activity.
- storage tools - Report NFS, CIFS and iSCSI stats.
Community
- Community site - DTrace community site.
- Mailing list - DTrace community mailing list.
- FreeBSD DTrace mailing list - FreeBSD DTrace community mailing list.
- China DTrace - A Chinese DTrace site.
Contributing
Contributions are more than welcome! Please see contribution guidelines first.