From 3fe2c3e6deafc50a609b023f578ec9a613e5842d Mon Sep 17 00:00:00 2001 From: Adrien Brault Date: Tue, 18 Feb 2025 09:46:10 +0100 Subject: [PATCH] Fix exception thrown using the Symfony profiler for Messenger workers #24 Fixes #24 Fix exception thrown using the Symfony profiler for Messenger workers * Replace backslashes with regular slashes in the transaction name in `src/EventListener/MessengerProfilerListener.php` * Use `str_replace('\\', '/', \get_class($event->getEnvelope()->getMessage()))` * Replace backslashes with regular slashes in the transaction name in `src/Messenger/ProfilerMiddleware.php` * Use `str_replace('\\', '/', \get_class($envelope->getMessage()))` * Ensure the transaction name is used in the URI with regular slashes in `src/Profiler/SymfonyProfiler.php` * Replace backslashes with regular slashes in the URI --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/sourceability/instrumentation/issues/24?shareId=XXXX-XXXX-XXXX-XXXX). --- src/EventListener/MessengerProfilerListener.php | 2 +- src/Messenger/ProfilerMiddleware.php | 2 +- src/Profiler/SymfonyProfiler.php | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) mode change 100755 => 100644 src/Messenger/ProfilerMiddleware.php mode change 100755 => 100644 src/Profiler/SymfonyProfiler.php diff --git a/src/EventListener/MessengerProfilerListener.php b/src/EventListener/MessengerProfilerListener.php index 8b91e32..b8905e8 100644 --- a/src/EventListener/MessengerProfilerListener.php +++ b/src/EventListener/MessengerProfilerListener.php @@ -34,7 +34,7 @@ public static function getSubscribedEvents() public function onInvoke(WorkerMessageReceivedEvent $event): void { - $transactionName = \get_class($event->getEnvelope()->getMessage()); + $transactionName = str_replace('\\', '/', \get_class($event->getEnvelope()->getMessage())); $this->profiler->stop(); $this->profiler->start($transactionName, 'messenger'); diff --git a/src/Messenger/ProfilerMiddleware.php b/src/Messenger/ProfilerMiddleware.php old mode 100755 new mode 100644 index 3bd1be0..5088712 --- a/src/Messenger/ProfilerMiddleware.php +++ b/src/Messenger/ProfilerMiddleware.php @@ -29,7 +29,7 @@ public function __construct(ProfilerInterface $profiler, ?RequestStack $requestS public function handle(Envelope $envelope, StackInterface $stack): Envelope { - $transactionName = \get_class($envelope->getMessage()); + $transactionName = str_replace('\\', '/', \get_class($envelope->getMessage())); $skip = false; if (null !== $this->requestStack diff --git a/src/Profiler/SymfonyProfiler.php b/src/Profiler/SymfonyProfiler.php old mode 100755 new mode 100644 index 5951315..8d1c6e8 --- a/src/Profiler/SymfonyProfiler.php +++ b/src/Profiler/SymfonyProfiler.php @@ -45,6 +45,7 @@ public function start(string $name, ?string $kind = null): void $kind = 'custom'; } + $name = str_replace('\\', '/', $name); $uri = sprintf('http://%s/%s', $kind, $name); $this->request = Request::create($uri, $kind);