feat(sentry): CiroMarket backend'ine hata izleme eklendi
All checks were successful
ciromarket-backend-build-and-deploy / build (push) Successful in 3m25s

Ne yaptik:
- requirements.txt'e sentry-sdk[fastapi]==2.66.1 eklendi.
- main.py'de FastAPI uygulamasi olusturulmadan once sentry_sdk.init() cagriliyor.
- DSN os.getenv("SENTRY_DSN", "") ile okunuyor, ortam degiskeni yoksa bos string.
- send_default_pii=False, traces_sample_rate=0.0.

Neden yaptik:
- CiroMarket hicbir hata izleme sistemine bagli degildi. Backend cokerse ya da
  bir endpoint 500 donerse bunu ancak kullanici sikayet edince ogreniyorduk.
  SellerX'in kendi backend'i ve frontend'i Sentry'ye bagliydi, CiroMarket kor
  nokta olarak kalmisti.
- DSN bos oldugunda sentry_sdk hicbir sey gondermez, yani local calistirmada ve
  DSN set edilmemis ortamlarda tamamen no-op. Bu davranis SellerX backend'iyle
  ayni (application.yaml: dsn ${SENTRY_DSN_BACKEND:}).
- send_default_pii bilerek kapali: istek header'lari, cerezler ve IP adresi
  gonderilmiyor. CiroMarket satici verisi isliyor, KVKK acisindan varsayilan
  olarak acmak dogru degil. Sentry org'unda ayrica data scrubber ve IP
  maskeleme acik.
- traces_sample_rate=0.0 cunku su an sadece hata izleme istiyoruz; tracing
  ucretsiz kotayi hizla tuketiyor. Ihtiyac olursa sonra acilir.
- Sentry projesi: cironet org'unda ciromarket-api (EU region, sadece Error
  Monitoring urunu acik). SENTRY_DSN K8s'te ciromarket-backend-secrets
  secret'ina eklendi.
This commit is contained in:
furkanyigit34
2026-08-10 00:31:40 +03:00
parent b1cad27330
commit 016c540945
2 changed files with 26 additions and 0 deletions

View File

@@ -274,6 +274,31 @@ def get_country_from_barcode(barcode: str) -> str:
prefix = barcode[:3] prefix = barcode[:3]
return BARCODE_PREFIX_TO_COUNTRY.get(prefix, "Bilinmeyen") 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( app = FastAPI(
title="Trendyol Admin API", title="Trendyol Admin API",
version="1.0.0", version="1.0.0",

View File

@@ -6,3 +6,4 @@ psycopg2-binary>=2.9.9
requests==2.31.0 requests==2.31.0
python-multipart==0.0.6 python-multipart==0.0.6
pytrends==4.9.2 pytrends==4.9.2
sentry-sdk[fastapi]==2.66.1