# پایتون > https://docs.errora.org/platforms/python ## نصب ```bash pip install "sentry-sdk[django]" # یا [flask]، [fastapi]، [celery]، یا فقط sentry-sdk ``` ## مقداردهی اولیه ```python import sentry_sdk sentry_sdk.init( dsn=os.environ["SENTRY_DSN"], environment=os.environ.get("ENV", "production"), release=os.environ.get("APP_VERSION"), traces_sample_rate=0.2, # ردیابی کارایی profiles_sample_rate=1.0, # پروفایلینگ (از تراکنش‌های نمونه‌برداری‌شده) enable_logs=True, # لاگ ساخت‌یافته send_default_pii=False, attach_stacktrace=True, ) ``` SDK به‌طور خودکار جنگو، فلسک، FastAPI، Celery، Redis، SQLAlchemy، `requests` و موارد دیگر را تشخیص می‌دهد. استثناهای مدیریت‌نشده بدون هیچ کد اضافه‌ای ثبت می‌شوند. ### جنگو `sentry_sdk.init()` را در انتهای `settings.py` (یا در `wsgi.py`/`asgi.py` پیش از ساخت شیء application) صدا بزنید. چیز دیگری لازم نیست؛ میان‌افزار، خطای ویوها، اسپن‌های ORM و رندر قالب خودکار ابزارگذاری می‌شوند. ### Celery مقداردهی را داخل هندلر سیگنال `celeryd_init`/`worker_process_init` انجام دهید تا هر ورکر فورک‌شده کلاینت خودش را داشته باشد: ```python from celery.signals import celeryd_init @celeryd_init.connect def init_sentry(**_kwargs): sentry_sdk.init(dsn=..., traces_sample_rate=0.2) ``` ## ثبت دستی ```python with sentry_sdk.push_scope() as scope: scope.set_tag("area", "billing") scope.set_context("invoice", {"id": invoice.id, "total": invoice.total}) sentry_sdk.capture_exception(exc) sentry_sdk.capture_message("Reconciliation drifted", level="warning") sentry_sdk.set_user({"id": user.id, "username": user.username}) ``` ## لاگ ```python import logging logger = logging.getLogger(__name__) logger.warning("retrying payment", extra={"order_id": order.id, "attempt": 3}) ``` با `enable_logs=True` رکوردهای لاگ کتابخانهٔ استاندارد به ارورا فرستاده می‌شوند، فیلدهای `extra` به‌صورت ویژگی‌های نوع‌دار حفظ می‌شوند و به ترِیس فعال برچسب می‌خورند. نگاه کنید به [لاگ‌ها](/products/logs). ## مانیتور کران ```python from sentry_sdk.crons import monitor @monitor(monitor_slug="nightly-invoices") def nightly_invoices(): ... ``` با Celery beat هم می‌توانید تسک را دکوریت کنید یا مستقیم از `sentry_sdk.crons.capture_checkin` استفاده کنید. نگاه کنید به [مانیتورینگ کران](/products/crons). ## متریک ```python sentry_sdk.metrics.incr("orders.created", 1, tags={"plan": "pro"}) sentry_sdk.metrics.distribution("orders.total_toman", order.total, unit="none") ``` نگاه کنید به [متریک](/products/metrics). ## رصد هوش مصنوعی اگر از یکپارچه‌سازی‌های OpenAI، Anthropic یا LangChain استفاده می‌کنید، SDK اسپن‌های `gen_ai.*` می‌فرستد و ارورا آن‌ها را به [رصد هوش مصنوعی](/products/insights) می‌برد — اجرای ایجنت‌ها، مصرف توکن به تفکیک مدل و فراخوانی ابزارها — بدون تنظیم اضافه‌ای جز `traces_sample_rate`. ## بررسی نهایی ```python sentry_sdk.capture_exception(Exception("Errora smoke test")) ```