lib: improve error ignore list

This commit is contained in:
Jens Langhammer 2020-10-28 19:00:11 +01:00
parent dcd3dc9744
commit 6652514358
1 changed files with 24 additions and 13 deletions

View File

@ -1,4 +1,5 @@
"""passbook sentry integration""" """passbook sentry integration"""
from aioredis.errors import ReplyError
from billiard.exceptions import WorkerLostError from billiard.exceptions import WorkerLostError
from botocore.client import ClientError from botocore.client import ClientError
from celery.exceptions import CeleryError from celery.exceptions import CeleryError
@ -8,7 +9,7 @@ from django.db import InternalError, OperationalError, ProgrammingError
from django_redis.exceptions import ConnectionInterrupted from django_redis.exceptions import ConnectionInterrupted
from ldap3.core.exceptions import LDAPException from ldap3.core.exceptions import LDAPException
from redis.exceptions import ConnectionError as RedisConnectionError from redis.exceptions import ConnectionError as RedisConnectionError
from redis.exceptions import RedisError from redis.exceptions import RedisError, ResponseError
from rest_framework.exceptions import APIException from rest_framework.exceptions import APIException
from structlog import get_logger from structlog import get_logger
from websockets.exceptions import WebSocketException from websockets.exceptions import WebSocketException
@ -23,26 +24,36 @@ class SentryIgnoredException(Exception):
def before_send(event, hint): def before_send(event, hint):
"""Check if error is database error, and ignore if so""" """Check if error is database error, and ignore if so"""
ignored_classes = ( ignored_classes = (
# Inbuilt types
KeyboardInterrupt,
ConnectionResetError,
OSError,
# Django DB Errors
OperationalError, OperationalError,
InternalError, InternalError,
ProgrammingError, ProgrammingError,
ConnectionInterrupted,
APIException,
ConnectionResetError,
RedisConnectionError,
WorkerLostError,
DisallowedHost, DisallowedHost,
ConnectionResetError,
KeyboardInterrupt,
ClientError,
ValidationError, ValidationError,
OSError, # Redis errors
RedisConnectionError,
ConnectionInterrupted,
RedisError, RedisError,
SentryIgnoredException, ResponseError,
CeleryError, ReplyError,
LDAPException, # websocket errors
ChannelFull, ChannelFull,
WebSocketException, WebSocketException,
# rest_framework error
APIException,
# celery errors
WorkerLostError,
CeleryError,
# S3 errors
ClientError,
# custom baseclass
SentryIgnoredException,
# ldap errors
LDAPException,
) )
if "exc_info" in hint: if "exc_info" in hint:
_, exc_value, _ = hint["exc_info"] _, exc_value, _ = hint["exc_info"]