I’m trying to setup Symfony Messenger with Sentry Queues but for a while without any luck. I cannot find any resources online to this specific topic. I’m trying to use the example sentry provides and I modified it so it’s not dependent on the messages (at least I think so). But even what seems simplest example doesn’t put any queues into sentry queue tab.
public function sendMessageToTransport(SendMessageToTransportsEvent $event): void
{
$parentSpan = SentrySentrySdk::getCurrentHub()->getSpan();
if ($parentSpan !== null) {
$context = SentryTracingSpanContext::make()
->setOp('queue.publish')
->setDescription(SendQuestionConfirmationEmail::class);
$span = $parentSpan->startChild($context);
SentrySentrySdk::getCurrentHub()->setSpan($span);
// Publish your job to the queue
/*Queue::push($job, [
'publish_time' => microtime(true),
'sentry_trace' => SentrygetTraceparent(),
'baggage' => SentrygetBaggage(),
]);*/
$span
->setData([
'messaging.message.id' => '1',
'messaging.destination.name' => 'default',
'messaging.message.body.size' => 200,
])
->finish();
SentrySentrySdk::getCurrentHub()->setSpan($parentSpan);
}
$context = SentrycontinueTrace(
SentrygetTraceparent(),
SentrygetBaggage()
)->setOp('queue.process')->setName(SendQuestionConfirmationEmail::class);
$transaction = SentrystartTransaction($context);
SentrySentrySdk::getCurrentHub()->setSpan($transaction);
try {
// Continue job processing...
} catch (Throwable $e) {
$transaction->setStatus(SentryTracingSpanStatus::internalError());
}
$transaction
->setData([
'messaging.message.id' => 1,
'messaging.destination.name' => 'default',
'messaging.message.body.size' => 200,
'messaging.message.receive.latency' => 10,
'messaging.message.retry.count' => 1,
])
->finish();
dump("done");
}
Note that I know this is absolutely terrible code, I just needed to make it run somewhere and this ended up being the place
I put everything into event handler and this was the result of hour long trying. I’m sure the event triggers alright and also that my sentry works. (errors are reported just fine)
Does anyone have experience with doing this?