# کارایی و ردیابی > https://docs.errora.org/products/performance ردیابی به این پرسش پاسخ می‌دهد که «چرا آن درخواست کند بود؟» — کدام فراخوانی دیتابیس، کدام پرش HTTP، کدام تماس با مدل زبانی زمان را خورده است. ## راه‌اندازی نمونه‌برداری ترِیس را در SDK روشن کنید. بقیهٔ چیزها (میان‌افزار فریم‌ورک، درایور دیتابیس، کلاینت HTTP) را SDKهای رسمی خودکار ابزارگذاری می‌کنند. ```python sentry_sdk.init( dsn="…", traces_sample_rate=0.2, # ۲۰٪ درخواست‌ها environment="production", release="myapp@1.4.2", ) ``` ```javascript Sentry.init({ dsn: "…", integrations: [Sentry.browserTracingIntegration()], tracesSampleRate: 0.2, tracePropagationTargets: ["localhost", /^https:\/\/api\.example\.com/], }); ``` ### راهبرد نمونه‌برداری - توسعه: `1.0`. - تولید: از `0.1` تا `0.2` شروع کنید. ترِیس به ازای هر اسپن محاسبه می‌شود ([سرویس ردیابی](/billing/wallet)) و یک سرویس پرترافیک اسپن زیادی می‌سازد. - روی یک مسیر خاص دقت بیشتری می‌خواهید؟ تابع `traces_sampler` بنویسید که برای مسیرهای مهم `1.0` و برای health-checkها نرخ پایین برگرداند. ### ردیابی توزیع‌شده برای دنبال‌کردن یک درخواست در چند سرویس، SDK هدرهای `sentry-trace` و `baggage` را منتشر می‌کند. مقدار `trace_propagation_targets` (سمت سرور) یا `tracePropagationTargets` (مرورگر) را طوری بگذارید که میزبان‌های API خودتان را شامل شود و مطمئن شوید پراکسی معکوس این هدرها را حذف نمی‌کند. ## اسپن دلخواه ```python with sentry_sdk.start_transaction(op="task", name="nightly-settlement") as tx: with tx.start_child(op="db.query", description="SELECT … FROM ledger"): rows = fetch_rows() with tx.start_child(op="http.client", description="POST /gateway/verify"): verify(rows) ``` ## در پنل صفحهٔ **کارایی** تراکنش‌های پروژهٔ انتخاب‌شده را با این‌ها نشان می‌دهد: - **توان عملیاتی** (تعداد در بازه) و **تأخیر** (میانگین، p50 تا p99) - **نرخ خطا** - فیلتر بر اساس محیط، نسخه، نوع عملیات، بازهٔ زمانی و **کاربر** — با انتخاب یک کاربر، مسیرها و جاب‌ها به آن‌هایی محدود می‌شوند که او اجرا کرده است (همان فیلتر خطاها و لاگ‌ها؛ صفحهٔ **کاربران** میان‌بر مستقیم دارد) با باز کردن یک تراکنش، **آبشار ترِیس** را می‌بینید: هر اسپن با مدت، تودرتویی و برچسب‌هایش — تا فراخوانی‌های پشت‌سرهم دیتابیس یا آن پرش کند به سرویس بیرونی مستقیم جلوی چشمتان باشد. اسپن‌هایی که برچسب `gen_ai.*` یا `mcp.*` دارند، علاوه بر این به [رصد هوش مصنوعی](/products/insights) هم برده می‌شوند. ## داشبورد مجموعه‌دادهٔ `transactions` در [داشبوردها](/products/dashboards) در دسترس است، با `count()`، `avg(duration)`، `sum(duration)`، `failure_rate()` و صدک‌های `p50` تا `p99`، با تفکیک بر اساس تراکنش، عملیات، وضعیت، محیط، نسخه یا پلتفرم. ## عیب‌یابی | نشانه | علت / راه‌حل | | --- | --- | | هیچ تراکنشی نمی‌آید | `traces_sample_rate` تنظیم نشده یا `0` است | | ترِیس در مرز سرویس قطع می‌شود | مقصدهای انتشار شامل سرویس مقصد نیست، یا پراکسی هدر `sentry-trace`/`baggage` را حذف می‌کند | | تراکنش مرورگر هست ولی اسپن سمت سرور نیست | SDK سمت سرور مقداردهی نشده یا نرخ نمونه‌برداری‌اش خیلی پایین‌تر است — فرزند فقط وقتی تصمیم نمونه‌برداری والد را به ارث می‌برد که هدرها برسند | | هزینه بالا می‌رود | `traces_sample_rate` را کم کنید یا مسیرهای health-check را با `traces_sampler` روی `0` بگذارید |