File tree 3 files changed +41
-0
lines changed
tests/integrations/celery
3 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -270,6 +270,11 @@ class SPANDATA:
270
270
e.g. the queue name or topic.
271
271
"""
272
272
273
+ MESSAGING_MESSAGE_RETRY_COUNT = "messaging.message.retry.count"
274
+ """
275
+ Number of retries/attempts to process a message.
276
+ """
277
+
273
278
SERVER_ADDRESS = "server.address"
274
279
"""
275
280
Name of the database host.
Original file line number Diff line number Diff line change @@ -356,6 +356,11 @@ def _inner(*args, **kwargs):
356
356
op = OP .QUEUE_PROCESS , description = task .name
357
357
) as span :
358
358
_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
+
359
364
return f (* args , ** kwargs )
360
365
except Exception :
361
366
exc_info = sys .exc_info ()
Original file line number Diff line number Diff line change @@ -659,3 +659,34 @@ def task(): ...
659
659
(event ,) = events
660
660
(span ,) = event ["spans" ]
661
661
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