From f2447365a2d5ac4c249fed58e3fb6b46a3966d79 Mon Sep 17 00:00:00 2001 From: Alexandre Choura <42672104+PROFeNoM@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:14:05 +0200 Subject: [PATCH] fix(elasticsearch): Hook not being removed (#2616) * fix: Hook not being removed * style: Remove unused import --- .../ElasticSearch/V8/ElasticSearchIntegration.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Integrations/Integrations/ElasticSearch/V8/ElasticSearchIntegration.php b/src/Integrations/Integrations/ElasticSearch/V8/ElasticSearchIntegration.php index d29320ac30..f9803c8900 100644 --- a/src/Integrations/Integrations/ElasticSearch/V8/ElasticSearchIntegration.php +++ b/src/Integrations/Integrations/ElasticSearch/V8/ElasticSearchIntegration.php @@ -2,6 +2,7 @@ namespace DDTrace\Integrations\ElasticSearch\V8; +use DDTrace\HookData; use DDTrace\Integrations\ElasticSearch\V1\ElasticSearchCommon; use DDTrace\Integrations\Integration; use DDTrace\SpanData; @@ -33,14 +34,16 @@ public function init() "posthook" => function (SpanData $span) use (&$constructorCalled, $integration) { if (!$constructorCalled) { foreach (get_class_methods('Elastic\Elasticsearch\Traits\NamespaceTrait') as $method) { - $hook = function ($obj, $scope, $args, $ret) use ($integration, $method) { - \dd_untrace('Elastic\Elasticsearch\Traits\NamespaceTrait', $method); + $hook = function (HookData $hook) use ($integration, $method) { + $ret = $hook->returned; + \DDTrace\remove_hook($hook->id); $class = get_class($ret); foreach (get_class_methods($ret) as $method) { $integration->traceNamespaceMethod($class, $method); } }; - \DDTrace\hook_method('Elastic\Elasticsearch\Client', $method, null, $hook); + + \DDTrace\install_hook("Elastic\Elasticsearch\Client::$method", null, $hook); } foreach (get_class_methods('Elastic\Elasticsearch\Traits\ClientEndpointsTrait') as $method) { $analyticsMethods = [