Merge pull request 'feat(tradein): мониторинг ошибок через GlitchTip (#396)' (#410) from feat/tradein-glitchtip into main
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Successful in 23s
Deploy Trade-In / deploy (push) Successful in 21s
Deploy Trade-In / build-backend (push) Successful in 58s

This commit is contained in:
lekss361 2026-05-22 06:21:24 +00:00
commit 5e907aa7af
4 changed files with 19 additions and 0 deletions

View file

@ -22,5 +22,9 @@ class Settings(BaseSettings):
# Пусто = эндпоинты открыты (dev). В prod задаётся через env ADMIN_TOKEN.
admin_token: str | None = None
# GlitchTip DSN — мониторинг ошибок (Sentry-совместимый). #396.
# Пусто = мониторинг выключен (dev). В prod — env GLITCHTIP_DSN из .env.runtime.
glitchtip_dsn: str | None = None
settings = Settings()

View file

@ -8,6 +8,7 @@ from __future__ import annotations
import logging
import sentry_sdk
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
@ -20,6 +21,17 @@ logging.basicConfig(
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
)
# Мониторинг ошибок — GlitchTip (Sentry-совместимый, #396).
# DSN из env GLITCHTIP_DSN; пусто (dev) → мониторинг не инициализируется.
if settings.glitchtip_dsn:
sentry_sdk.init(
dsn=settings.glitchtip_dsn,
environment=settings.environment,
traces_sample_rate=0.0, # только ошибки, без performance-трейсов
send_default_pii=False, # не шлём client_name / client_phone в отчёты
)
logging.getLogger("app.main").info("GlitchTip monitoring enabled")
app = FastAPI(
title="Trade-In MVP API",
description="Оценка вторичного жилья (выкупная стоимость) — копия trade-in feature из gendesign",

View file

@ -19,6 +19,7 @@ dependencies = [
"segno>=1.6.0", # QR-код для PDF shareable URL
"curl-cffi>=0.7.0", # impersonate=chrome120 для Cian/Avito (TLS fingerprint)
"python-multipart>=0.0.9", # FastAPI UploadFile — загрузка фото квартиры (#394)
"sentry-sdk>=2.0.0", # мониторинг ошибок → GlitchTip (#396)
]
[dependency-groups]

View file

@ -43,6 +43,8 @@ services:
YANDEX_GEOCODER_KEY: "${YANDEX_GEOCODER_KEY:-}"
# Защита /api/v1/admin/* — задаётся в .env.runtime. Пусто = открыто (dev).
ADMIN_TOKEN: "${ADMIN_TOKEN:-}"
# GlitchTip DSN — мониторинг ошибок (#396). Пусто = выключено.
GLITCHTIP_DSN: "${GLITCHTIP_DSN:-}"
depends_on:
postgres:
condition: service_healthy