Sha256: 82ba29a3bc22a197d9d15e6b01a67d6a0334c8a6eb3fd896fa8f55a07b30c855

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

= XRay

* http://rubyforge.org/projects/xray

== Description

XRay provides a lightweight yet powerful toolbox for troubleshooting Ruby
applications when things stop making sense. XRay includes GDB and DTrace 
tooling as well as a Thread Dump utility that can dump the stack trace 
of all the thread in your Ruby VM when you send a +QUIT+ signal.

== GDB

Copy the +gdb_macros+ file provided in the gem as your ~/.gdbinit file.
You will find more details on how to use them, in my
{Troubleshooting Ruby Shortcut}[http://ph7spot.com/publications/troubleshooting_ruby_processes]

== Thread Dump

After patching your Ruby VM with {caller_for_all_threads_patch_for_MRI_1.8.6.diff}[http://xray.rubyforge.org/svn/patches_for_mri/caller_for_all_threads_patch_for_MRI_1.8.6.diff]
(or {caller_for_all_threads_patch_for_MRI_1.8.7.diff}[http://xray.rubyforge.org/svn/patches_for_mri/caller_for_all_threads_patch_for_MRI_1.8.7.diff])
as explained in {this document}[http://ph7spot.com/caller_for_all_threads], you can install a signal
handler in charge of dumping the stack trace for all the threads
in your Ruby VM with:

  require "rubygems"
  require "xray/thread_dump_signal_handler"

You can then trigger a thread dump at any time with

  kill -QUIT <pid of your ruby process>

== DTrace

=== Fire DTrace Application Probes

See XRay::DTrace::Tracer

=== Out-of-the-box Rails DTrace Instrumentation ***

You are one require away from triggering automatically DTrace events for 
Rails requests, database access and template rendering. As simple as 

     # environment.rb
     Rails::Initializer.run do |config|

       ...

       config.after_initialize do
         require "rubygems"
         require "xray/dtrace/rails/enable_tracing"
       end  
     end
 
See 
* lib/xray/dtrace/railsenable_tracing.rb
* lib/xray/dtrace/action_controller_tracing_extension.rb
* lib/xray/dtrace/active_record_tracing_extension.rb


== Author

Philippe Hanrigou,
http://ph7spot.com

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xray-1.1 README