Skip to content

chrisa/ruby-dtrace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ruby-dtrace-consumer is Ruby bindings for libdtrace, which allows you to write D-based programs with Ruby, accessing traced data in Ruby.

The corresponding provider library, allowing you to create probes meaningful to your Ruby programs, may be found as "ruby-usdt".

"ruby-dtrace", the predecessor to both these gems, is now deprecated and will not be updated.

== FEEDBACK

Fork the repository on Github: http://github.com/chrisa/ruby-dtrace

== FEATURES

  • Access to the D API
  • Probe metadata
  • Run D programs
  • Access aggregates
  • Consume output from D programs

== SYNOPSIS

require 'dtrace'

t = DTrace.new 
progtext = 'ruby$1:::function-entry{ @a[strjoin(strjoin(copyinstr(arg0),"."),copyinstr(arg1))] = count(); } END { printa(@a); }'
prog = t.compile progtext
prog.execute

t.go

[...]

c = DTraceConsumer.new(t)
c.consume_once do |rec|
  # handle records
end

== REQUIREMENTS

  • For the consumer API, platform with DTrace support (Solaris and Illumos-derived systems, Mac OS X 10.5+, FreeBSD).

  • root, or some/all of the dtrace privileges on Solaris: dtrace_user, dtrace_proc and dtrace_kernel.

== INSTALL

$ sudo gem install ruby-dtrace-consumer