Ruby-DTrace 0.2.5 released, with USDT probe support

Ruby-DTrace version 0.2.5 has been released!


Ruby-DTrace is Ruby bindings for DTrace, which allows you to add
DTrace probes to your Ruby programs, and to write D-based programs
with Ruby.


Earlier releases of Ruby-DTrace supported the “consumer” API to
DTrace, allowing D-based programs to be written in Ruby, receiving
information from existing probes.

This is the first release to support creating probes in Ruby programs:
you have full control over the probes created, their name, argument
types and where they’re fired from in your Ruby program.

Probes can be created at any time while the Ruby program is running:
unlike native-code USDT probes, there’s no additional build
step. Probes are specified as Ruby code, rather than with the D

The disabled-probe overhead is low, as is-enabled probes are used to
provide a mechanism for extra work to be done in Ruby to gather
arguments, only when the probe is enabled.


The consumer API has had a naming convention change, moving everything
under the Dtrace top-level namespace. Existing scripts may need some


Ruby 1.8 is supported.

Supported platforms are currently:

  • Solaris 10 / OpenSolaris on Intel
  • Mac OS X 10.5 on Intel

There’s no support yet for probes in 64-bit processes, nor for SPARC
or PowerPC. The full list of ports in progress is:

  • Solaris on SPARC
  • Mac OS X 10.5 on PowerPC
  • 64-bit processes on Intel, on Solaris and Mac OS X.

FreeBSD is currently not supported, pending DTrace userspace tracing
support on that platform.


Installation on the supported platforms should be a matter of
installing the gem. You will need the developer tools for the relevant
platform installed, and the C compiler used to build your Ruby binary.


Author: Chris A. [email protected]

Gem: # gem install chrisa-ruby-dtrace --source

Code: GitHub - chrisa/ruby-dtrace: Ruby bindings for DTrace