Class: StaticTracing::Tracers::LatencyTracer::LatencyModuleGenerator

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

Instance Method Summary collapse

Constructor Details

#initialize(provider, methods) ⇒ LatencyModuleGenerator

Returns a new instance of LatencyModuleGenerator.



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/ruby-static-tracing/tracers/latency_tracer.rb', line 10

def initialize(provider, methods)
  methods.each do |method|
    define_method(method) do |*args, &block|
      start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC, :nanosecond)
      result = super(*args, &block)
      duration = Process.clock_gettime(Process::CLOCK_MONOTONIC, :nanosecond) - start_time
      LatencyTracer.fire_tracepoint(provider, method, duration)
      result
    end
  end
end