@@ -70,8 +70,7 @@ public function onBoot(Dispatcher $events): void
70
70
->setData ([
71
71
'messaging.system ' => 'laravel ' ,
72
72
'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 ),
75
74
'messaging.destination.connection ' => $ connection ,
76
75
])
77
76
->setDescription ($ queue );
@@ -190,7 +189,7 @@ public function handleJobProcessingQueueEvent(JobProcessing $event): void
190
189
$ job = [
191
190
'messaging.system ' => 'laravel ' ,
192
191
193
- 'messaging.destination.name ' => $ event ->job ->getQueue (),
192
+ 'messaging.destination.name ' => $ this -> normalizeQueueName ( $ event ->job ->getQueue () ),
194
193
'messaging.destination.connection ' => $ event ->connectionName ,
195
194
196
195
'messaging.message.id ' => $ jobPayload ['uuid ' ] ?? null ,
@@ -241,6 +240,21 @@ private function finishJobWithStatus(SpanStatus $status): void
241
240
}
242
241
}
243
242
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
+
244
258
protected function pushScope (): void
245
259
{
246
260
$ this ->pushScopeTrait ();
0 commit comments