Files
core/services/sentry.py

31 lines
1.4 KiB
Python
Raw Normal View History

2024-10-14 12:19:30 +03:00
import logging
2024-02-16 12:34:39 +03:00
import sentry_sdk
from sentry_sdk.integrations.ariadne import AriadneIntegration
from sentry_sdk.integrations.sqlalchemy import SqlalchemyIntegration
from sentry_sdk.integrations.starlette import StarletteIntegration
2024-08-09 09:37:06 +03:00
2024-04-09 19:50:27 +03:00
from settings import GLITCHTIP_DSN
2024-02-16 12:34:39 +03:00
2024-08-26 21:18:33 +03:00
logger = logging.getLogger(__name__)
# Настройка логирования для отправки логов в Sentry
sentry_logging_handler = sentry_sdk.integrations.logging.SentryHandler(level=logging.WARNING)
logger.addHandler(sentry_logging_handler)
logger.setLevel(logging.DEBUG) # Более подробное логирование
2024-02-16 12:34:39 +03:00
2024-10-14 12:19:30 +03:00
def start_sentry() -> None:
2024-02-16 12:34:39 +03:00
try:
2024-10-14 09:33:31 +03:00
logger.info("[services.sentry] Sentry init started...")
2024-02-16 12:34:39 +03:00
sentry_sdk.init(
2024-08-26 21:18:33 +03:00
dsn=GLITCHTIP_DSN,
traces_sample_rate=1.0, # Захват 100% транзакций
profiles_sample_rate=1.0, # Профилирование 100% транзакций
2024-02-16 12:34:39 +03:00
enable_tracing=True,
2024-08-06 14:34:12 +03:00
integrations=[StarletteIntegration(), AriadneIntegration(), SqlalchemyIntegration()],
2024-08-26 21:18:33 +03:00
send_default_pii=True, # Отправка информации о пользователе (PII)
2024-02-16 12:34:39 +03:00
)
2024-08-26 21:18:33 +03:00
logger.info("[services.sentry] Sentry initialized successfully.")
except (sentry_sdk.utils.BadDsn, ImportError, ValueError, TypeError) as _e:
2024-10-14 09:33:31 +03:00
logger.warning("[services.sentry] Failed to initialize Sentry", exc_info=True)