module Oboe_metal::Reporter

Public Class Methods

clear_all_traces() click to toggle source

clear_all_traces

Truncates the trace output file to zero

# File lib/joboe_metal.rb, line 106
def clear_all_traces
  TraceView.reporter.reset if TraceView.loaded
end
get_all_traces() click to toggle source

get_all_traces

Retrieves all traces written to the trace file

# File lib/joboe_metal.rb, line 115
def get_all_traces
  return [] unless TraceView.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 = []
  TraceView.reporter.getSentEventsAsBsonDocument.to_a.each do |e|
    t = {}
    e.each_pair { |k, v|
      t[k] = v
    }
    traces << t
  end
  traces
end
restart() click to toggle source

restart

This is a nil method for TraceView under Java. It is maintained only for compability across interfaces.

# File lib/joboe_metal.rb, line 97
def restart
  TraceView.logger.warn "[traceview/reporter] Reporter.restart isn't supported under JRuby"
end
sendReport(evt) click to toggle source
# File lib/joboe_metal.rb, line 134
def sendReport(evt)
  evt.report(TraceView.reporter)
end
start() click to toggle source

start

Start the TraceView Reporter

# File lib/joboe_metal.rb, line 53
def start
  return unless TraceView.loaded

  if ENV.key?('TRACEVIEW_GEM_TEST')
    TraceView.reporter = Java::ComTracelyticsJoboe::ReporterFactory.getInstance.buildTestReporter(false)
  else
    TraceView.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
      TraceView::Config.tracing_mode = :always
    elsif cfg.hasSampleThroughFlag
      TraceView::Config.tracing_mode = :through
    else
      TraceView::Config.tracing_mode = :never
    end

    TraceView.sample_rate = cfg.getSampleRate
    TraceView::Config.sample_rate = cfg.sampleRate
    TraceView::Config.sample_source = cfg.sampleRateSourceValue
  rescue => e
    TraceView.logger.debug "[traceview/debug] Couldn't retrieve/acces joboe sampleRateCfg"
    TraceView.logger.debug "[traceview/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)
    TraceView::API.report_init unless ENV.key?('TRACEVIEW_GEM_TEST')
  end
end