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
|
|
|
|
|
2025-06-01 23:56:11 +00:00
|
|
|
|
def start_sentry() -> None:
|
2024-02-16 09:34:39 +00:00
|
|
|
|
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.")
|
2025-06-01 23:56:11 +00:00
|
|
|
|
except (sentry_sdk.utils.BadDsn, ImportError, ValueError, TypeError) as _e:
|
2024-10-14 06:33:31 +00:00
|
|
|
|
logger.warning("[services.sentry] Failed to initialize Sentry", exc_info=True)
|