Courses & Tutorials
Awesome DTrace – Massive Collection of 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
- dtrace.conf 2008
- dtrace.conf 2012
- dtrace.conf 2016
- 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.
Tags
DTrace