فرض کنید در بخش پشتیبانی یک فروشگاه، مشتریای گزارش میدهد که دکمه پرداخت کار نمیکند. چند دقیقه بعد، کاربران دیگری هم همان مشکل را گزارش میکنند. هر گزارش مربوط به یک کاربر و یک لحظه مشخص است، اما همه آنها ممکن است از یک مشکل مشترک در سیستم ناشی شده باشند.
در سنتری، هر بار وقوع خطا بهصورت یک رخداد خطا (Error Event) ثبت میشود. سنتری رخدادهای مشابه را کنار هم قرار میدهد و آنها را در قالب یک Issue نمایش میدهد.
Error یکبار وقوع خطاست
هر Error Event نشان میدهد که خطایی در زمان مشخصی رخ داده است. اگر یک خطای مشابه برای ۴۰۰ کاربر اتفاق بیفتد، ممکن است ۴۰۰ ر خداد جداگانه برای آن ثبت شود. حتی ممکن است یک کاربر چند بار با همان خطا مواجه شود و هر بار یک رخداد جدید ایجاد شود.
اطلاعات هر رخداد به زبان برنامهنویسی، SDK و تنظیمات اپلیکیشن بستگی دارد و میتواند شامل موارد زیر باشد:
- نوع خطا و پیام آن؛
- پشته فراخوانی (Stack Trace)؛
- زمان وقوع خطا؛
- مرورگر، سیستمعامل یا دستگاه کاربر؛
- نسخه منتشرشده برنامه (Release)؛
- رویدادهای منتهی به خطا (Breadcrumbs)؛
- اطلاعات کاربر یا نشست مرتبط.
این اطلاعات کمک میکنند شرایط وقوع خطا را بهتر بررسی کنید. بااینحال، همه رخدادها الزاماً تمام این اطلاعات را ندارند. برای مثال، اگر اطلاعات کاربر را در SDK تنظیم نکرده باشید، سنتری نمیتواند مشخص کند خطا برای چه کسی رخ داده است.
Issue گروهی از خطاهای مشابه است
نمایش جداگانه صدها رخداد مشابه، بررسی خطاها را دشوار میکند. سنتری رخدادهایی را که احتمال میدهد علت مشترکی داشته باشند، در قالب یک Issue گروهبندی میکند.
این گروهبندی میتواند بر اساس اطلاعاتی مانند ن وع خطا، پیام خطا، Stack Trace و محل وقوع آن در کد انجام شود. در نتیجه، بهجای مشاهده صدها ردیف تکراری، یک Issue میبینید که خلاصهای از رخدادهای مرتبط را نمایش میدهد.
برای مثال، یک Issue ممکن است چنین اطلاعاتی داشته باشد:
NullPointerException in checkout.py:42
First seen: 14:03
Last seen: 14:51
Events: 412
Users affected: 388
در این مثال، ۴۱۲ رخداد مشابه در یک Issue قرار گرفتهاند. اگر اطلاعات کاربران همراه رخدادها ارسال شده باشد، سنتری میتواند تعداد کاربران تحتتأثیر را نیز نمایش دهد.