Skip to content

Commit 1cb8879

Browse files
authored
Normalize the queue name (#910)
1 parent c18135d commit 1cb8879

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/Sentry/Laravel/Features/QueueIntegration.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ public function onBoot(Dispatcher $events): void
7070
->setData([
7171
'messaging.system' => 'laravel',
7272
'messaging.message.id' => $payload['uuid'] ?? null,
73-
// Jobs pushed onto the Redis driver are formatted as queues:<queue>
74-
'messaging.destination.name' => Str::after($queue ?? '', 'queues:'),
73+
'messaging.destination.name' => $this->normalizeQueueName($queue),
7574
'messaging.destination.connection' => $connection,
7675
])
7776
->setDescription($queue);
@@ -190,7 +189,7 @@ public function handleJobProcessingQueueEvent(JobProcessing $event): void
190189
$job = [
191190
'messaging.system' => 'laravel',
192191

193-
'messaging.destination.name' => $event->job->getQueue(),
192+
'messaging.destination.name' => $this->normalizeQueueName($event->job->getQueue()),
194193
'messaging.destination.connection' => $event->connectionName,
195194

196195
'messaging.message.id' => $jobPayload['uuid'] ?? null,
@@ -241,6 +240,21 @@ private function finishJobWithStatus(SpanStatus $status): void
241240
}
242241
}
243242

243+
private function normalizeQueueName(?string $queue): string
244+
{
245+
if ($queue === null) {
246+
return '';
247+
}
248+
249+
// SQS queues are sometimes formatted like: https://sqs.<region>.amazonaws.com/<id>/<queue_name>
250+
if (filter_var($queue, FILTER_VALIDATE_URL) !== false) {
251+
return Str::afterLast($queue, '/');
252+
}
253+
254+
// Jobs pushed onto the Redis driver are formatted as queues:<queue>
255+
return Str::after($queue, 'queues:');
256+
}
257+
244258
protected function pushScope(): void
245259
{
246260
$this->pushScopeTrait();

0 commit comments

Comments
 (0)