Когда моя база данных выходит из строя, Sentry мгновенно оказывается переполненным OperationalError: could not connect to server: Connection refused
psycopg2. Поскольку OperationalError
может быть брошен в других случаях, кроме недоступных баз данных, я не могу просто игнорировать его, используя RAVEN_CONFIG
IGNORE_EXCEPTIONS
.
Я пытался написать фильтр для ведения журнала Django, но он просто не не работает. Он правильно перехватывает исключение, но все же каким-то образом всплывает. Вот фильтр:
def skip_unreachable_database(record):
"""Avoid flooding Sentry when the database is down"""
if record.exc_info:
print '>>>', record.exc_info
exc_type, exc_value = record.exc_info[:2]
if isinstance(exc_value, OperationalError) and exc_value.message.lower().startswith('could not connect to server: connection refused'):
return False
return True
Существует билет о том, что фильтрация не работает с Raven, но он был закрыт.
Есть идеи, как я могу это обойти?