Class: StaticTracing::Tracers::LatencyTracer

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-static-tracing/tracers/latency_tracer.rb

Defined Under Namespace

Classes: LatencyModuleGenerator

Class Method Summary collapse

Class Method Details

.disable!Object



36
37
38
39
40
# File 'lib/ruby-static-tracing/tracers/latency_tracer.rb', line 36

def disable!
  modified_classes.each do |klass, latency_module|
    klass.instance_eval { unprepend latency_module }
  end
end

.enable!Object



30
31
32
33
34
# File 'lib/ruby-static-tracing/tracers/latency_tracer.rb', line 30

def enable!
  modified_classes.each do |klass, latency_module|
    klass.prepend latency_module
  end
end

.fire_tracepoint(provider, name, duration) ⇒ Object



42
43
44
45
# File 'lib/ruby-static-tracing/tracers/latency_tracer.rb', line 42

def fire_tracepoint(provider, name, duration)
  return
  tracepoint(provider, name).fire(name, duration)
end

.register(klass, method_names, provider: nil) ⇒ Object



24
25
26
27
28
# File 'lib/ruby-static-tracing/tracers/latency_tracer.rb', line 24

def register(klass, method_names, provider: nil)
  provider ||= underscore(klass.name)
  latency_module = LatencyModuleGenerator.new(provider, Array(method_names))
  modified_classes[klass] = latency_module
end