وقتی یک کاربر با خطا مواجه میشود، گزارشهای فنی همیشه تمام ماجرا را نشان نمیدهند. ممکن است تیم توسعه به Stack Trace، لاگهای برنامه و جزئیات درخواستهای شبکه دسترسی داشته باشد، اما همچنان نداند کاربر پیش از وقوع خطا چه مراحلی را طی کرده، روی چه عناصری کلیک کرده یا در کدام بخش رابط کاربری متوقف شده است. قابلیت Session Replay در سنتری برای پاسخ به همین پرسشها طراحی شده است.
این قابلیت، تعامل کاربر با برنامه را بهشکل تصویری بازسازی میکند و اطلاعات آن را در کنار خطاها، رویدادهای شبکه، پیامهای کنسول و دادههای عملکردی قرار میدهد. نتیجه این است که تیم فنی بهجای حدسزدن شرایط وقوع مشکل، میتواند تجربه واقعی کاربر را بررسی کند.
Session Replay سنتری چیست؟
قابلیت Session Replay سنتری نمایشی شبیه ویدئو از نشست کاربر ارائه میدهد، اما در عمل یک فیلم ضبطشده از صفحه نمایش نیست. سنتری وضعیت و تغییرات ساختار صفحه را در کنار تعاملاتی مانند کلیک، پیمایش و جابهجایی میان صفحات ثبت میکند و سپس آنها را بهشکل یک نشست قابلپخش بازسازی میکند.
این تفاوت از نظر فنی و حفظ حریم خصوصی مهم است. در این روش، سنتری لزوماً پیکسلهای صفحه را مانند یک ابزار فیلمبرداری ضبط نمیکند؛ بلکه وضعیت رابط کاربری و تغییرات آن را بازسازی میکند. البته قابلیت ثبت برخی عناصر مانند Canvas، محتوای چندرسانهای یا اجزای متعلق به دامنههای دیگر، محدودیتها و تنظیمات جداگانهای دارد.

هر نشست ضبطشده میتواند اطلاعاتی مانند موارد زیر را در اختیار تیم توسعه قرار دهد:
- مسیر حرکت کاربر در برنامه
- کلیکها و تعاملات کاربر
- پیمایش در صفحه
- تغییر مسیرها و بارگذاری صفحات
- خطاهای سمت کاربر و سرور
- پیامهای ثبتشده در Console
- درخواستهای Fetch و XHR
- پاسخهای ناموفق یا کند شبکه
- رخدادهای عملکردی و Traceها
- کلیکهای تکراری، عصبی یا بدون نتیجه
ترکیب این اطلاعات، Session Replay سنتری را از یک ابزار صرفاً بصری به بخشی از فرایند مشاهدهپذیری و عیبیابی تبدیل میکند.
💡 سنتری همروش؛ مشاهده، تحلیل و رفع مشکلات اپلیکیشن در یک پلتفرم یکپارچه
با سرویس سنتری همروش میتوانید بدون تحمیل بار عملیاتی میزبانی و نگهداری Sentry به تیم فنی، از قابلیتهای آن برای مشاهده و تحلیل مشکلات اپلیکیشن استفاده کنید.
✅ راهاندازی و نگهداری زیرساخت توسط همروش
✅ کاهش بار عملیاتی تیمهای توسعه، DevOps و Platform
✅ امکان استقرار و نگهداری روی زیرساخت اختصاصی سازمان
چرا گزارش خطا بهتنهایی کافی نیست؟
یک گزارش خطا معمولاً مشخص میکند که مشکل در کدام تابع، فایل یا خط کد رخ داده است. بااینحال، برای پاسخدادن به پرسشهای زیر کافی نیست:
- کاربر پیش از وقوع خطا چه کاری انجام داده بود؟
- آیا خطا مانع ادامه فرایند شد؟
- آیا کاربر چند بار روی یک دکمه کلیک کرد؟
- آیا رابط کاربری در وضعیت بارگذاری باقی ماند؟
- آیا یک درخواست شبکه با تأخیر یا خطا مواجه شد؟
- آیا مشکل فقط در یک مرورگر یا دستگاه مشخص رخ میدهد؟
- آیا کاربر پس از خطا تلاش کرد مسیر دیگری را امتحان کند؟
برای مثال، ممکن است گزارش خطا نشان دهد که یک مقدار تهی باعث شکست عملیات پرداخت شده است. Session Replay سنتری میتواند نشان دهد که کاربر ابتدا روش پرداخت را تغییر داده، سپس به مرحله قبل بازگشته و دوباره فرم را ارسال کرده است. این توالی ممکن است همان سناریویی باشد که تیم تست پیشتر بررسی نکرده است.
بهعبارت دیگر، گزارش خطا محل شکست را نشان میدهد؛ اما Session Replay سنتری میتواند شرایط و مسیر رسیدن به آن را روشن کند.
مهمترین کاربردهای Session Replay
۱. بازتولید خطاهای دشوار
یکی از زمانبرترین بخشهای عیبیابی، بازتولید خطایی است که فقط برای بعضی کاربران یا در شرایط خاص رخ میدهد. گاهی کاربران در تیکتهای پشتیبانی توضیحاتی مانند «دکمه کار نکرد» یا «صفحه ناگهان بسته شد» میدهند. اما این توضیحات، اطلاعات کافی برای بررسی فنی ارائه نمیکنند.
با اتصال Replay به رویداد خطا، تیم توسعه میتواند وضعیت صفحه و تعاملات قبل و بعد از مشکل را مشاهده کند. این قابلیت بهخصوص برای خطاهای وابسته به ترتیب تعاملات، وضعیت رابط کاربری، نوع مرورگر یا پاسخ API مفید است.
۲. بررسی مشکلات عملکردی
کندی همیشه بهشکل یک خطای صریح ظاهر نمیشود. ممکن است یک درخواست چند ثانیه طول بکشد، یک مؤلفه دیر رندر شود یا کاربر پس از کلیک بازخورد مناسبی دریافت نکند.
در Session Replay سنتری میتوان رفتار کاربر را در کنار درخواستهای شبکه و Traceهای عملکردی مشاهده کرد. برای مثال، اگر کاربر پس از کلیک چند بار همان دکمه را انتخاب کند، ممکن است رابط کاربری بازخورد مناسبی درباره پردازش درخواست ارائه نکرده باشد.
۳. شناسایی کلیکهای تکراری و بدون نتیجه
سنتری میتواند برخی نشانههای نارضایتی کاربر، از جمله Rage Click و Dead Click را شناسایی کند. Rage Click به چند کلیک متوالی روی یک عنصر بیپاسخ گفته میشود که معمولاً نارضایتی کاربر از عملکرد رابط کاربری را نشان میدهند. Dead Click نیز کلیکی روی یک عنصر تعاملی است که تا چند ثانیه پس از انجام آن، هیچ تغییر یا پاسخ قابلمشاهدهای در صفحه ایجاد نمیکند. این رفتارها همیشه نشانه وجود باگ نیستند، اما میتوانند مشکلاتی مانند طراحی مبهم، پاسخگویی ضعیف رابط کاربری یا خرابی یک مؤلفه را آشکار کنند.
۴. درک اثر واقعی خطا بر کاربر
تمام خطاها اهمیت یکسانی ندارند. ممکن است یک خطا هزاران بار رخ دهد، اما تأثیر محدودی بر تجربه کاربر داشته باشد. در مقابل، یک خطای کمتکرار میتواند فرایند مهمی مانند ثبتنام، خرید یا پرداخت را کاملاً متوقف کند. Session Replay سنتری به تیم فنی کمک میکند اثر واقعی خطا را ببیند و اولویتبندی مشکلات را فقط بر اساس تعداد رخداد انجام ندهد.
۵. کاهش رفتوبرگشت میان تیمها
در بسیاری از سازمانها، گزارش مشکل ابتدا به تیم پشتیبانی میرسد و سپس میان تیم محصول، توسعه و عملیات جابهجا میشود. اگر اطلاعات اولیه ناقص باشد، فرایند بررسی طولانی خواهد شد.
وجود Replay مرتبط با خطا میتواند بخشی از این شکاف اطلاعاتی را کاهش دهد. به کمک Session Replay تیمهای مختلف یک مرجع مشترک برای مشاهده رفتار کاربر و دادههای فنی در اختیار خواهند داشت.
ارتباط Session Replay با قابلیتهای دیگر سنتری
ارزش اصلی Session Replay سنتری زمانی مشخص میشود که در کنار سایر دادههای سنتری استفاده شود. صفحه Replay فقط یک پخشکننده تصویری نیست؛ بلکه خط زمانی مشترکی برای چند نوع داده فراهم میکند.
تیم توسعه میتواند در یک نشست، ارتباط میان موارد زیر را بررسی کند:
- اقدام کاربر در رابط کاربری
- خطای ثبتشده در برنامه
- پیامهای Console
- درخواستها و پاسخهای شبکه
- Breadcrumbها
- Transactionها و Spanها
- خطاهای مرتبط سمت Backend

برای نمونه، توسعهدهنده میتواند لحظه کلیک کاربر روی دکمه ثبت سفارش را مشاهده کند، درخواست API مرتبط با آن را پیدا کند و مدتزمان یا وضعیت پاسخ را بررسی کند. اگر ردیابی توزیعشده بهدرستی پیکربندی شده باشد، بررسی مسیر درخواست در سرویسهای Backend نیز امکانپذیر خواهد بود.
نرخ نمونهبرداری در Session Replay چگونه تعیین میشود؟
ثبت تمام نشستهای کاربران معمولاً ضروری یا مقرونبهصرفه نیست. سنتری امکان تعیین نرخ نمونهبرداری جداگانه (Sample Rate) برای نشستهای عادی و نشستهای دارای خطا را فراهم میکند. بهاینترتیب، تیم فنی میتواند درصد محدودی از نشستهای عادی را ثبت کند و نرخ بیشتری به نشستهایی اختصاص دهد که در آنها خطایی رخ داده است. نرخ مناسب باید بر اساس حجم ترافیک، هزینه نگهداری داده و نیازهای عیبیابی تعیین شود.
انتخاب نرخ نمونهبرداری بالا بدون بررسی حجم ترافیک میتواند مصرف داده و هزینه سرویس را افزایش دهد. علاوه بر این، هرچه تعداد نشستهای ثبتشده بیشتر باشد، مدیریت دسترسی و الزامات حریم خصوصی نیز اهمیت بیشتری پیدا میکند.
حریم خصوصی در Session Replay چگونه حفظ میشود؟
فعالکردن Session Replay سنتری بدون توجه به حریم خصوصی کاربران، تصمیم درستی نیست. رابط کاربری یک برنامه ممکن است اطلاعات شخصی، دادههای مالی، پیامهای خصوصی یا اطلاعات محرمانه سازمانی را نمایش دهد. بنابراین، پیش از استفاده از این قابلیت باید مشخص شود چه دادههایی اجازه ثبت دارند و چه بخشهایی باید از Replay حذف یا پنهان شوند.
سنتری بهصورت پیشفرض متنها و ورودیهای کاربران را میپوشاند و نمایش محتوای چندرسانهای مانند تصاویر و ویدئوها را مسدود میکند. بااینحال، اتکا به تنظیمات پیشفرض کافی نیست؛ زیرا نوع اطلاعات حساس در هر برنامه متفاوت است و تغییرات رابط کاربری نیز ممکن است دادههای جدیدی را در معرض ثبت قرار دهد.
برای محافظت از اطلاعات میتوان محتوای حساس را پوشاند یا بعضی عناصر را بهطور کامل از Replay حذف کرد. در روش پوشاندن، ساختار کلی عنصر باقی میماند، اما محتوای آن قابلمشاهده نیست. در روش مسدودسازی، خود عنصر و محتوای آن در بازسازی نشست نمایش داده نمیشوند.

اطلاعاتی مانند گذرواژه، شماره کارت، کد احراز هویت، دادههای پزشکی و پیامهای خصوصی نباید در Replay قابل مشاهده باشند. همچنین نمایش متن واقعی تنها باید برای عناصر مشخص و کمخطر مجاز شود؛ غیرفعالکردن عمومی پوشش اطلاعات، ریسک افشای داده را بهشدت افزایش میدهد.
در کنار کنترل محتوای ثبتشده، دسترسی اعضای سازمان به Replayها و مدت نگهداری این دادهها نیز باید مدیریت شود. سیاست حریم خصوصی Session Replay باید با الزامات حقوقی، سیاستهای امنیتی و قواعد نگهداری داده در سازمان هماهنگ باشد.
آیا محتوای درخواستها و پاسخهای شبکه ثبت میشود؟
Session Replay سنتری بهصورت پیشفرض اطلاعات پایه درخواستهای خروجی Fetch و XHR، مانند آدرس درخواست، متد، اندازه بدنه و کد وضعیت را ثبت میکند. بااینحال، ثبت محتوای کامل بدنه درخواست و پاسخ به تنظیمات جداگانه نیاز دارد
ثبت نامحدود محتوای درخواستها و پاسخهای شبکه ممکن است اطلاعات شخصی، توکنها یا دادههای محرمانه را وارد سامانه مانیتورینگ کند. بنابراین، فهرست آدرسهای مجاز و Headerهای قابلثبت باید محدود و هدفمند باشد.
رویکرد صحیح این نیست که «همهچیز را ثبت کنیم تا شاید بعداً مفید باشد»؛ بلکه باید فقط دادهای ثبت شود که ضرورت عملیاتی آن روشن است و برای نگهداری آن مجوز و کنترل کافی وجود دارد.
ملاحظات عملکردی و فنی
Session Replay سنتری برای کاهش فشار روی رابط کاربری، دادههای Replay را فشردهسازی و پردازش میکند. بااینحال، هیچ ابزار ثبت نشستی کاملاً بدون هزینه نیست. در برنامههایی مانند داشبوردهای زنده که محتوای صفحه بهطور مداوم تغییر میکند، Session Replay باید تعداد بیشتری از تغییرات را ثبت و پردازش کند. این موضوع ممکن است مصرف پردازنده، حافظه و حجم داده ارسالی را افزایش دهد؛ بنابراین تأثیر آن بر عملکرد برنامه باید پیش از انتشار گسترده بررسی شود.
پیش از انتشار گسترده باید موارد زیر بررسی شوند:
- تأثیر Replay بر مصرف پردازنده و حافظه دستگاه کاربر
- حجم داده ارسالی در شبکه
- رفتار برنامه در دستگاههای ضعیف و اینترنت کند
- بررسی مجوز اجرای Web Worker در سیاست امنیتی وبسایت
- بررسی ثبت نمودارها و عناصر گرافیکی Canvas
- محدودیت ثبت محتوای iframeهای بارگذاریشده از وبسایتهای دیگر
- بررسی دسترسی Replay به فونتها و فایلهای خارجی
- رفتار Replay در صفحات دارای تغییرات پرتعداد DOM
اگر سیاست امنیتی وبسایت اجازه اجرای پردازشهای پسزمینه موردنیاز Session Replay را ندهد، سنتری ممکن است نتواند دادههای نشست را بهدرستی پردازش و ارسال کند. برای جلوگیری از این مشکل، باید مجوزهای مربوط به Web Worker در تنظیمات امنیتی وبسایت بر اساس مستندات نسخه SDK سنتری بررسی شوند.
Session Replay چه چیزی نیست؟
برداشت اشتباه از این قابلیت میتواند انتظارات غیرواقعی ایجاد کند. Session Replay موارد زیر نیست:
- جایگزین تست خودکار و تست دستی نیست.
- جایگزین لاگگذاری ساختاریافته نیست.
- جایگزین Error Monitoring و Performance Monitoring نیست.
- ابزار تحلیل کامل رفتار محصول نیست.
- تضمین نمیکند تمام نشستها بدون نقص بازسازی شوند.
- مجوزی برای جمعآوری نامحدود اطلاعات کاربران ایجاد نمیکند.
Replay باید در کنار سایر ابزارهای مشاهدهپذیری استفاده شود. این قابلیت زمینه وقوع مشکل را فراهم میکند، اما تحلیل علت ریشهای همچنان به دادههای خطا، Traceها، Metrics و لاگها نیاز دارد.
الگوی پیشنهادی برای استفاده عملیاتی
برای پیادهسازی کنترلشده سشن ریپلی سنتری میتوان از مسیر زیر استفاده کرد:
۱. ابتدا قابلیت Replay را در محیط آزمایشی فعال کنید.
۲. تمام مسیرهای دارای اطلاعات حساس را شناسایی کنید.
۳. تنظیمات Mask و Block را پیش از ورود به محیط عملیاتی آزمایش کنید.
۴. نرخ نمونهبرداری نشستهای عادی را متناسب با حجم ترافیک و نیازهای عیبیابی تعیین کنید.
۵. برای نشستهای دارای خطا نرخ بیشتری در نظر بگیرید.
۶. دسترسی به Replayها را بر اساس نقش اعضای تیم محدود کنید.
۷. میزان مصرف و حجم داده را پس از فعالسازی پایش کنید.
۸. بهصورت دورهای بررسی کنید که تغییرات رابط کاربری باعث افشای داده جدید نشده باشند.
۹. سیاست نگهداری داده و الزامات حقوقی سازمان را با پیکربندی فنی هماهنگ کنید.
۱۰. از Replay برای پاسخ به پرسشهای مشخص استفاده کنید، نه برای مشاهده تصادفی رفتار کاربران.
جمعبندی
قابلیت Session Replay در سنتری، شکاف اطلاعاتی میان گزارش فنی خطا و تجربه واقعی کاربر را کاهش میدهد. تیم توسعه با استفاده از این قابلیت میتواند مسیر حرکت کاربر، تعاملات او با رابط کاربری، درخواستهای شبکه، خطاها و دادههای عملکردی را در یک خط زمانی مشترک بررسی کند.
مزیت اصلی Session Replay فقط مشاهده رفتار کاربر نیست؛ بلکه برقراری ارتباط میان رفتار او و دادههای فنی سامانه است. این ارتباط میتواند زمان لازم برای بازتولید و عیبیابی خطا را کاهش دهد، اولویتبندی مشکلات را دقیقتر کند و همکاری میان تیمهای توسعه، محصول، عملیات و پشتیبانی را بهبود بخشد.
بااینحال، استفاده مؤثر از این قابلیت به سه عامل وابسته است: انتخاب حسابشده نرخ نمونهبرداری، رعایت سختگیرانه الزامات حریم خصوصی و اتصال صحیح Replay به سایر دادههای مشاهدهپذیری. فعالکردن این قابلیت بدون برنامهای مشخص، لزوماً به عیبیابی بهتر منجر نمیشود و ممکن است هزینهها و ریسکهای غیرضروری ایجاد کند.