Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Commit 1514a06

Browse files
committed
Merge pull request #777 from getsentry/fingerprint-soft-timeouts
Add fingerprint to soft timeouts in Celery
2 parents 105fdf3 + 08832aa commit 1514a06

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

raven/contrib/celery/__init__.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import logging
1111

12+
from celery.exceptions import SoftTimeLimitExceeded
1213
from celery.signals import after_setup_logger, task_failure
1314
from raven.handlers.logging import SentryHandler
1415

@@ -24,15 +25,21 @@ def filter(self, record):
2425

2526

2627
def register_signal(client):
27-
def process_failure_signal(sender, task_id, args, kwargs, **kw):
28+
def process_failure_signal(sender, task_id, args, kwargs, einfo, **kw):
2829
# This signal is fired inside the stack so let raven do its magic
30+
if isinstance(einfo.exception, SoftTimeLimitExceeded):
31+
fingerprint = ['celery', 'SoftTimeLimitExceeded', sender]
32+
else:
33+
fingerprint = None
2934
client.captureException(
3035
extra={
3136
'task_id': task_id,
3237
'task': sender,
3338
'args': args,
3439
'kwargs': kwargs,
35-
})
40+
},
41+
fingerprint=fingerprint,
42+
)
3643

3744
task_failure.connect(process_failure_signal, weak=False)
3845

0 commit comments

Comments
 (0)