From 5bd64176f6a04558796a0c1785e912343e1f707e Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 6 Jan 2025 14:09:19 -0500 Subject: [PATCH 1/2] DEBUG-3305 remove dependency on benchmark --- lib/datadog/di/instrumenter.rb | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/datadog/di/instrumenter.rb b/lib/datadog/di/instrumenter.rb index b1f8f0f599a..96df68465f8 100644 --- a/lib/datadog/di/instrumenter.rb +++ b/lib/datadog/di/instrumenter.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true -# rubocop:disable Lint/AssignmentInCondition +require_relative '../core/utils/time' -require 'benchmark' +# rubocop:disable Lint/AssignmentInCondition module Datadog module DI @@ -115,22 +115,21 @@ def hook_method(probe, &block) depth: probe.max_capture_depth || settings.dynamic_instrumentation.max_capture_depth, attribute_count: probe.max_capture_attribute_count || settings.dynamic_instrumentation.max_capture_attribute_count) end - rv = nil + start_time = Core::Utils::Time.get_time # Under Ruby 2.6 we cannot just call super(*args, **kwargs) # for methods defined via method_missing. - duration = Benchmark.realtime do # steep:ignore - rv = if args.any? - if kwargs.any? - super(*args, **kwargs, &target_block) - else - super(*args, &target_block) - end - elsif kwargs.any? - super(**kwargs, &target_block) + rv = if args.any? + if kwargs.any? + super(*args, **kwargs, &target_block) else - super(&target_block) + super(*args, &target_block) end + elsif kwargs.any? + super(**kwargs, &target_block) + else + super(&target_block) end + duration = Core::Utils::Time.get_time - start_time # The method itself is not part of the stack trace because # we are getting the stack trace from outside of the method. # Add the method in manually as the top frame. From 38551aa1cee2de3627f8315d525a328cca877939 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Tue, 7 Jan 2025 10:21:33 -0500 Subject: [PATCH 2/2] retest