File tree Expand file tree Collapse file tree 3 files changed +41
-0
lines changed
tests/integrations/celery Expand file tree Collapse file tree 3 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -270,6 +270,11 @@ class SPANDATA:
270270 e.g. the queue name or topic.
271271 """
272272
273+ MESSAGING_MESSAGE_RETRY_COUNT = "messaging.message.retry.count"
274+ """
275+ Number of retries/attempts to process a message.
276+ """
277+
273278 SERVER_ADDRESS = "server.address"
274279 """
275280 Name of the database host.
Original file line number Diff line number Diff line change @@ -356,6 +356,11 @@ 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 (
361+ SPANDATA .MESSAGING_MESSAGE_RETRY_COUNT , task .request .retries
362+ )
363+
359364 return f (* args , ** kwargs )
360365 except Exception :
361366 exc_info = sys .exc_info ()
Original file line number Diff line number Diff line change @@ -659,3 +659,34 @@ def task(): ...
659659 (event ,) = events
660660 (span ,) = event ["spans" ]
661661 assert "messaging.destination.name" not in span ["data" ]
662+
663+
664+ def test_retry_count_zero (init_celery , capture_events ):
665+ celery = init_celery (enable_tracing = True )
666+ events = capture_events ()
667+
668+ @celery .task ()
669+ def task (): ...
670+
671+ task .apply_async ()
672+
673+ (event ,) = events
674+ (span ,) = event ["spans" ]
675+ assert span ["data" ]["messaging.message.retry.count" ] == 0
676+
677+
678+ @mock .patch ("celery.app.task.Task.request" )
679+ def test_retry_count_nonzero (mock_request , init_celery , capture_events ):
680+ mock_request .retries = 3
681+
682+ celery = init_celery (enable_tracing = True )
683+ events = capture_events ()
684+
685+ @celery .task ()
686+ def task (): ...
687+
688+ task .apply_async ()
689+
690+ (event ,) = events
691+ (span ,) = event ["spans" ]
692+ assert span ["data" ]["messaging.message.retry.count" ] == 3
You can’t perform that action at this time.
0 commit comments