core/services/sentry.py

31 lines
1.4 KiB
Python
Raw Permalink Normal View History

2024-10-14 09:19:30 +00:00
import logging
2024-02-16 09:34:39 +00: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 06:37:06 +00:00
2024-04-09 16:50:27 +00:00
from settings import GLITCHTIP_DSN
2024-02-16 09:34:39 +00:00
2024-08-26 18:18:33 +00: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 09:34:39 +00:00
2024-10-14 09:19:30 +00:00
2024-02-16 09:34:39 +00:00
def start_sentry():
try:
2024-10-14 06:33:31 +00:00
logger.info("[services.sentry] Sentry init started...")
2024-02-16 09:34:39 +00:00
sentry_sdk.init(
2024-08-26 18:18:33 +00:00
dsn=GLITCHTIP_DSN,
traces_sample_rate=1.0, # Захват 100% транзакций
profiles_sample_rate=1.0, # Профилирование 100% транзакций
2024-02-16 09:34:39 +00:00
enable_tracing=True,
2024-08-06 11:34:12 +00:00
integrations=[StarletteIntegration(), AriadneIntegration(), SqlalchemyIntegration()],
2024-08-26 18:18:33 +00:00
send_default_pii=True, # Отправка информации о пользователе (PII)
2024-02-16 09:34:39 +00:00
)
2024-08-26 18:18:33 +00:00
logger.info("[services.sentry] Sentry initialized successfully.")
2024-10-21 07:52:23 +00:00
except Exception as _e:
2024-10-14 06:33:31 +00:00
logger.warning("[services.sentry] Failed to initialize Sentry", exc_info=True)