Module: TraceView::API::LayerInit

Defined in:
lib/traceview/api/layerinit.rb

Overview

Provides methods related to layer initialization and reporting

Instance Method Summary collapse

Instance Method Details

#force_traceObject

force_trace has been deprecated and will be removed in a subsequent version.



39
40
41
42
43
44
45
46
47
48
# File 'lib/traceview/api/layerinit.rb', line 39

def force_trace
  TraceView.logger.warn 'TraceView::API::LayerInit.force_trace has been deprecated and will be ' \
                   'removed in a subsequent version.'

  saved_mode = TraceView::Config[:tracing_mode]
  TraceView::Config[:tracing_mode] = 'always'
  yield
ensure
  TraceView::Config[:tracing_mode] = saved_mode
end

#report_init(layer = 'rack') ⇒ Object

Internal: Report that instrumentation for the given layer has been installed, as well as the version of instrumentation and version of layer.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/traceview/api/layerinit.rb', line 13

def report_init(layer = 'rack')
  # Don't send __Init in development or test
  return if %w(development test).include? ENV['RACK_ENV']

  # Don't send __Init if the c-extension hasn't loaded
  return unless TraceView.loaded

  platform_info = TraceView::Util.build_init_report

  # If already tracing, save and clear the context.  Restore it after
  # the __Init is sent
  context = nil

  if TraceView.tracing?
    context = TraceView::Context.toString
    TraceView::Context.clear
  end

  start_trace(layer, nil, platform_info.merge('Force' => true)) {}

  TraceView::Context.fromString(context) if context
end