A number of packages have included runtime support for systemtap in Fedora such as the JVM and Python. SystemTap makes use of the probe points added for DTRACE. There are similar patches for Ruby to provide SystemTap probes for Ruby 1.9.2: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26235 Older patches for Ruby 1.8.7 are available (https://gist.github.com/86895 and http://joyeur.com/2007/05/07/dtrace-for-ruby-is-available/) An preliminary srpm based off of RHEL6 Ruby using the older 1.8.7 patches has been built and used successfully with trace Ruby program execution: http://people.redhat.com/wcohen/ruby/ruby-1.8.7.299-6.el6.dtrace_20.src.rpm It would be very nice to have the instrumentation points available in Ruby.
Created attachment 475631 [details] systemtap support for ruby I'm not claiming this as I'm not sure I can commit the time at the moment, but I have spent some cycles on my own time porting the patch adding systemtap support to python in Fedora to Ruby Its not complete, there are some things that still need to be done/fixed and there might be better places to put the probes (I hadn't noticed the dtrace/ruby patch before, thanks for that), but it could be used as a base for further development. Hope this helps
First of all, - under what license are the patches for systemtap support available? - and where is the "current" patch for systemtap support for ruby 1.8.7.x?
-The license isn't clear for the Ruby 1.8.7 patch that is in the prototype ruby source rpm. However, there is a 1.9.2 patch in the ruby svn: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26235 -The prototype rpm is available 1.8.7 patch: http://people.redhat.com/wcohen/ruby/ruby-1.8.7.299-6.el6.dtrace_20.src.rpm If Ruby in Fedora is going to be rebased to 1.9.2 (https://bugzilla.redhat.com/show_bug.cgi?id=667603) then could just use that patch in ruby svn. Otherwise back port the patch in Ruby svn to 1.8.7.
Additional info. Issue for adding dtrace support ruby: http://redmine.ruby-lang.org/issues/1279 Issue for adding various tracing hooks to ruby: http://redmine.ruby-lang.org/issues/2565 There were three patches to put dtrace support into ruby january 2010: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=26235 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=26238 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=26239 However, shortly afterwards the patches were reverted with: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=26243
The original patch for 1.8.5 and 1.8.6 si GPLv2, therefore also the 1.8.7 patch should be GPLv2 IMO. http://svn.joyent.com/opensource/dtrace/ruby/
Or better Ruby or GPLv2
There are going to be DTrace probes in Ruby 2.0 [1]. They are already implemented in ruby-2.0 branch of Ruby's dist-git [2]. [1] https://bugs.ruby-lang.org/issues/2565 [2] http://pkgs.fedoraproject.org/cgit/ruby.git/tree/?h=ruby-2.0
Since F19, there is integrated systemtap support [1]. William, since the probes differs from the RHEL ones, would you mind to update your wikipage [2]? [1] http://pkgs.fedoraproject.org/cgit/ruby.git/tree/libruby.stp [2] http://sourceware.org/systemtap/wiki/RubyMarker