def self.instrument!
::Fiber.class_eval do
include NewRelic::Agent::Instrumentation::MonitoredFiber
alias_method(:initialize_without_new_relic, :initialize)
if RUBY_VERSION < '2.7.0'
def initialize(*_args, &block)
traced_block = add_thread_tracing(&block)
initialize_with_newrelic_tracing { initialize_without_new_relic(&traced_block) }
end
else
def initialize(**kwargs, &block)
traced_block = add_thread_tracing(&block)
initialize_with_newrelic_tracing { initialize_without_new_relic(**kwargs, &traced_block) }
end
end
end
end