Profiling custom Ruby scripts
For standalone scripts, context start-end needs to be marked specifically and optionally extended events can be called.
#!/usr/bin/env ruby require 'raygun/apm' class Hello def rdoc sleep 0.5 end end tracer = Raygun::Apm::Tracer.new tracer.udp_sink! tracer.start_trace Hello.new.rdoc tracer.end_trace tracer.process_endedExtended events can be sent where appropiate to capture web requests and SQL queries manually.
HTTP Incoming event
event = Raygun::Apm::Event::HttpIn.new event[:pid] = Process.pid event[:tid] = 0 event[:timestamp] = tracer.now event[:url] = 'https://google.com/' event[:verb] = 'GET' event[:status] = 200 event[:duration] = 1000 tracer.emit(event)DB Query
event = Raygun::Apm::Event::Sql.new event[:pid] = Process.pid event[:tid] = 0 event[:timestamp] = tracer.now event[:provider] = 'postgres' event[:host] = 'localhost' event[:database] = 'rails' event[:query] = 'SELECT * from FOO;' event[:duration] = 1000 tracer.emit(event)