diff --git a/backend/main.py b/backend/main.py index b4d7484..d69bf51 100644 --- a/backend/main.py +++ b/backend/main.py @@ -274,6 +274,31 @@ def get_country_from_barcode(barcode: str) -> str: prefix = barcode[:3] return BARCODE_PREFIX_TO_COUNTRY.get(prefix, "Bilinmeyen") +# ============================================================================ +# SENTRY — hata izleme +# ---------------------------------------------------------------------------- +# DSN bos ise sentry_sdk hicbir sey gondermez, yani local calistirmada ve +# DSN set edilmemis ortamlarda tamamen no-op olur. Bu, SellerX backend'indeki +# davranisla ayni (application.yaml: dsn ${SENTRY_DSN_BACKEND:}). +# +# send_default_pii bilerek False: istek header'lari, cerezler ve IP adresi +# Sentry'ye gitmez. CiroMarket satici verisi isliyor, KVKK acisindan varsayilan +# olarak acmak dogru degil. +# +# FastAPI entegrasyonu sentry-sdk tarafindan otomatik algilanir (fastapi paketi +# yuklu oldugu icin), ayrica bir sey yapmaya gerek yok. Init, uygulama +# olusturulmadan ONCE cagrilmali. +# ============================================================================ +import sentry_sdk + +sentry_sdk.init( + dsn=os.getenv("SENTRY_DSN", ""), + environment=os.getenv("SENTRY_ENVIRONMENT", "production"), + send_default_pii=False, + # Sadece hata izleme. Tracing kotayi hizla yiyor, ihtiyac olursa acilir. + traces_sample_rate=0.0, +) + app = FastAPI( title="Trendyol Admin API", version="1.0.0", diff --git a/backend/requirements.txt b/backend/requirements.txt index e074216..f86e988 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -6,3 +6,4 @@ psycopg2-binary>=2.9.9 requests==2.31.0 python-multipart==0.0.6 pytrends==4.9.2 +sentry-sdk[fastapi]==2.66.1