module Oboe_metal::Reporter
Public Class Methods
clear_all_traces()
click to toggle source
Truncates the trace output file to zero
# File lib/joboe_metal.rb, line 94 def self.clear_all_traces Oboe.reporter.reset if Oboe.loaded end
get_all_traces()
click to toggle source
Retrieves all traces written to the trace file
# File lib/joboe_metal.rb, line 103 def self.get_all_traces return [] unless Oboe.loaded # Joboe TestReporter returns a Java::ComTracelyticsExtEbson::DefaultDocument # document for traces which doesn't correctly support things like has_key? which # raises an unhandled exception on non-existent key (duh). Here we convert # the Java::ComTracelyticsExtEbson::DefaultDocument doc to a pure array of Ruby # hashes traces = [] Oboe.reporter.getSentEventsAsBsonDocument.to_a.each do |e| t = {} e.each_pair { |k, v| t[k] = v } traces << t end traces end
sendReport(evt)
click to toggle source
# File lib/joboe_metal.rb, line 122 def self.sendReport(evt) evt.report(Oboe.reporter) end
start()
click to toggle source
Initialize the Oboe
Context
, reporter and report the initialization
# File lib/joboe_metal.rb, line 50 def self.start return unless Oboe.loaded if ENV.key?('OBOE_GEM_TEST') Oboe.reporter = Java::ComTracelyticsJoboe::TestReporter.new else Oboe.reporter = Java::ComTracelyticsJoboe::ReporterFactory.getInstance.buildUdpReporter end begin # Import the tracing mode and sample rate settings # from the Java agent (user configured in # /usr/local/tracelytics/javaagent.json when under JRuby) cfg = LayerUtil.getLocalSampleRate(nil, nil) if cfg.hasSampleStartFlag Oboe::Config.tracing_mode = 'always' elsif cfg.hasSampleThroughFlag Oboe::Config.tracing_mode = 'through' else Oboe::Config.tracing_mode = 'never' end Oboe.sample_rate = cfg.getSampleRate Oboe::Config.sample_rate = cfg.sampleRate Oboe::Config.sample_source = cfg.sampleRateSourceValue rescue => e Oboe.logger.debug "[oboe/debug] Couldn't retrieve/acces joboe sampleRateCfg" Oboe.logger.debug "[oboe/debug] #{e.message}" end # Only report __Init from here if we are not instrumenting a framework. # Otherwise, frameworks will handle reporting __Init after full initialization unless defined?(::Rails) || defined?(::Sinatra) || defined?(::Padrino) || defined?(::Grape) Oboe::API.report_init unless ENV.key?('OBOE_GEM_TEST') end end