Skip to content

Commit 68332d8

Browse files
feat(celery): Set task ID on span
Set Celery task ID on the "queue.process" span, and add tests for this new behavior. Closes #2974
1 parent ff10b77 commit 68332d8

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

sentry_sdk/consts.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ class SPANDATA:
270270
e.g. the queue name or topic.
271271
"""
272272

273+
MESSAGING_MESSAGE_ID = "messaging.message.id"
274+
"""
275+
The message's identifier.
276+
"""
277+
273278
MESSAGING_MESSAGE_RETRY_COUNT = "messaging.message.retry.count"
274279
"""
275280
Number of retries/attempts to process a message.

sentry_sdk/integrations/celery/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ def _inner(*args, **kwargs):
356356
op=OP.QUEUE_PROCESS, description=task.name
357357
) as span:
358358
_set_messaging_destination_name(task, span)
359+
with capture_internal_exceptions():
360+
span.set_data(SPANDATA.MESSAGING_MESSAGE_ID, task.request.id)
359361
with capture_internal_exceptions():
360362
span.set_data(
361363
SPANDATA.MESSAGING_MESSAGE_RETRY_COUNT, task.request.retries

tests/integrations/celery/test_celery.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,20 @@ def task(): ...
661661
assert "messaging.destination.name" not in span["data"]
662662

663663

664+
def test_messaging_id(init_celery, capture_events):
665+
celery = init_celery(enable_tracing=True)
666+
events = capture_events()
667+
668+
@celery.task
669+
def example_task(): ...
670+
671+
example_task.apply_async()
672+
673+
(event,) = events
674+
(span,) = event["spans"]
675+
assert "messaging.message.id" in span["data"]
676+
677+
664678
def test_retry_count_zero(init_celery, capture_events):
665679
celery = init_celery(enable_tracing=True)
666680
events = capture_events()

0 commit comments

Comments
 (0)