پرش به مطلب اصلی

بازپخش نشست

بازپخش نشست ثبت می‌کند در مرورگر چه گذشته است — تغییرات DOM، کلیک‌ها، ناوبری و کنسول — و آن را کنار خطایی که رخ داده بازپخش می‌کند.

راه‌اندازی​

import * as Sentry from "@sentry/browser";

Sentry.init({
dsn: "https://<public_key>@<your-errora-host>/<project_id>",
integrations: [
Sentry.replayIntegration({
maskAllText: true, // پیش‌فرض‌های حریم خصوصی: روشن
blockAllMedia: true,
maskAllInputs: true,
}),
],
replaysSessionSampleRate: 0.1, // ۱۰٪ همهٔ نشست‌ها
replaysOnErrorSampleRate: 1.0, // ۱۰۰٪ نشست‌هایی که به خطا خورده‌اند
});

دو نرخ نمونه‌برداری، آگاهانه جدا از هم:

  • replaysSessionSampleRate — مرور عادی. پایین نگهش دارید؛ هر نشست ضبط‌شده هزینه دارد.
  • replaysOnErrorSampleRate — نشست‌هایی که خطا داشته‌اند. این را روی 1.0 بگذارید؛ همین ضبط است که واقعاً می‌خواهید ببینید.

حریم خصوصی​

بازپخش صفحهٔ کاربران شما را ضبط می‌کند، پس به‌طور پیش‌فرض با آن مثل دادهٔ حساس رفتار کنید:

کنترلاثر
maskAllText: trueمتن‌ها با بلوک جایگزین می‌شوند
maskAllInputs: trueمقدار ورودی‌ها هرگز از مرورگر خارج نمی‌شود
blockAllMedia: trueتصویر و ویدئو ضبط نمی‌شود
class="sentry-mask"ماسک‌کردن یک عنصر مشخص
class="sentry-block"ضبط‌نکردن کامل آن عنصر
class="sentry-ignore"ضبط عنصر، بدون ثبت تعامل با آن

ماسک‌کردن در مرورگر و پیش از ارسال هر چیزی انجام می‌شود. ماسک را فقط برای عنصرهایی خاموش کنید که آگاهانه بررسی‌شان کرده‌اید.

در پنل​

صفحهٔ بازپخش‌ها نشست‌های ضبط‌شده را با کاربر، مدت، تعداد خطا، مرورگر و سیستم‌عامل فهرست می‌کند. با باز کردن یکی:

  • بازپخش ضبط rrweb همراه با خط زمان
  • صفحه‌های بازدیدشده در طول نشست
  • خطاهای رخ‌داده در آن نشست، با پیوند به خطای مربوطه
  • ترِیس‌های پیوسته، وقتی ردیابی روشن باشد

از صفحهٔ خطا، پنل بازپخش مستقیم به لحظهٔ رخداد خطا می‌پرد. از بازخورد کاربر هم replay_id همین کار را می‌کند.

API​

GET /api/v1/projects/{project_id}/replays?stats_period=24h&limit=&offset=
GET /api/v1/projects/{project_id}/replays/{replay_id}
GET /api/v1/projects/{project_id}/replays/{replay_id}/events

هزینه​

بازپخش‌ها زیر سرویس بازپخش نشست و به ازای هر نشست ضبط‌شده محاسبه می‌شوند — گران‌ترین واحد فهرست قیمت. اهرم کنترل هزینه‌تان نمونه‌برداری است؛ نگاه کنید به کیف پول.

عیب‌یابی​

نشانهعلت / راه‌حل
هیچ بازپخشی ثبت نمی‌شودreplayIntegration() اضافه نشده یا هر دو نرخ نمونه‌برداری 0 است
بازپخش هست ولی به خطا وصل نیستخطا در نشست یا تب دیگری ثبت شده، یا ضبط بعد از خطا شروع شده
بازپخش سفید یا خراب استشیوه‌نامه‌های cross-origin قابل درج نیستند — CSS را از دامنهٔ خودتان سرو کنید یا CORS را باز کنید
حجم ضبط خیلی زیاد استنشست‌های طولانی روی DOM سنگین؛ replaysSessionSampleRate را کم کنید و ویجت‌های شلوغ را با sentry-block مسدود کنید
دادهٔ حساس دیده می‌شودجایی ماسک خاموش شده — گزینه‌های mask* و کلاس‌های هر عنصر را بازبینی کنید