From d8ad4418065f5a353b77caf3872d0281d2038d8b Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Mon, 29 Sep 2025 18:26:58 +0800 Subject: [PATCH] refactor(sentry): standardize message ID generation using SentryUid in tracing aspects Replace uniqid() calls with SentryUid::generate() for consistent message ID generation across AMQP, AsyncQueue, and Kafka producer aspects. This ensures better integration with Sentry's internal ID generation patterns. --- src/sentry/src/Tracing/Aspect/AmqpProducerAspect.php | 3 ++- src/sentry/src/Tracing/Aspect/AsyncQueueJobMessageAspect.php | 3 ++- src/sentry/src/Tracing/Aspect/KafkaProducerAspect.php | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sentry/src/Tracing/Aspect/AmqpProducerAspect.php b/src/sentry/src/Tracing/Aspect/AmqpProducerAspect.php index 744e33060..75f83a31c 100644 --- a/src/sentry/src/Tracing/Aspect/AmqpProducerAspect.php +++ b/src/sentry/src/Tracing/Aspect/AmqpProducerAspect.php @@ -22,6 +22,7 @@ use PhpAmqpLib\Wire\AMQPTable; use Sentry\State\Scope; use Sentry\Tracing\SpanContext; +use Sentry\Util\SentryUid; use function FriendsOfHyperf\Sentry\trace; @@ -73,7 +74,7 @@ protected function handleProduceMessage(ProceedingJoinPoint $proceedingJoinPoint } } - $messageId = uniqid('amqp_', true); + $messageId = SentryUid::generate(); $destinationName = implode(', ', (array) $routingKey); $bodySize = strlen($producerMessage->payload()); diff --git a/src/sentry/src/Tracing/Aspect/AsyncQueueJobMessageAspect.php b/src/sentry/src/Tracing/Aspect/AsyncQueueJobMessageAspect.php index 5990ecde3..3401f234e 100644 --- a/src/sentry/src/Tracing/Aspect/AsyncQueueJobMessageAspect.php +++ b/src/sentry/src/Tracing/Aspect/AsyncQueueJobMessageAspect.php @@ -20,6 +20,7 @@ use Hyperf\Di\Aop\ProceedingJoinPoint; use Sentry\State\Scope; use Sentry\Tracing\SpanContext; +use Sentry\Util\SentryUid; use function FriendsOfHyperf\Sentry\trace; use function Hyperf\Support\with; @@ -76,7 +77,7 @@ public function handlePush(ProceedingJoinPoint $proceedingJoinPoint) /** @var \Hyperf\AsyncQueue\Driver\Driver $driver */ $driver = $proceedingJoinPoint->getInstance(); - $messageId = method_exists($job, 'getId') ? $job->getId() : uniqid('async_queue_', true); + $messageId = method_exists($job, 'getId') ? $job->getId() : SentryUid::generate(); $destinationName = Context::get('sentry.messaging.destination.name', 'default'); $bodySize = (fn ($job) => strlen($this->packer->pack($job)))->call($driver, $job); $data = [ diff --git a/src/sentry/src/Tracing/Aspect/KafkaProducerAspect.php b/src/sentry/src/Tracing/Aspect/KafkaProducerAspect.php index 14311de94..593900d5d 100644 --- a/src/sentry/src/Tracing/Aspect/KafkaProducerAspect.php +++ b/src/sentry/src/Tracing/Aspect/KafkaProducerAspect.php @@ -20,6 +20,7 @@ use longlang\phpkafka\Protocol\RecordBatch\RecordHeader; use Sentry\State\Scope; use Sentry\Tracing\SpanContext; +use Sentry\Util\SentryUid; use function FriendsOfHyperf\Sentry\trace; @@ -54,7 +55,7 @@ public function process(ProceedingJoinPoint $proceedingJoinPoint) protected function sendAsync(ProceedingJoinPoint $proceedingJoinPoint) { - $messageId = uniqid('kafka_', true); + $messageId = SentryUid::generate(); $destinationName = $proceedingJoinPoint->arguments['keys']['topic'] ?? 'unknown'; $bodySize = strlen($proceedingJoinPoint->arguments['keys']['value'] ?? ''); @@ -107,7 +108,7 @@ function (Scope $scope) use ($proceedingJoinPoint, $messages) { $carrier = Carrier::fromSpan($span) ->with([ 'publish_time' => microtime(true), - 'message_id' => uniqid('kafka_', true), + 'message_id' => SentryUid::generate(), 'destination_name' => $this->getTopic(), 'body_size' => strlen((string) $this->getValue()), ]);