Health panel
اكتشف الأنماط في حالات الفشل الأخيرة لحسابك. أخطاء مجمّعة حسب السبب الجذري، مرتّبة حسب التكرار، مع سجل نموذجي لكل مجموعة.
تاب Health بيجمّع كل طلب API فاشل من آخر ساعة أو يوم أو أسبوع، وبيرتّبهم حسب السبب اللي وراهم. بدل ما تفضل تمرّر على ألف صف 4xx في تاب Logs، بتشوف صف واحد لكل مجموعة خطأ مميّزة، مرتّبة بحيث الأعلى تكرارًا يبقى فوق.
استخدمه بعد النشر علشان تمسك التراجعات، أو قبل الإصدار علشان تتأكد إن كل حاجة هادية، أو لما تاجر يقولك "الدنيا كانت غريبة النهارده" وعايز قراءة سريعة لإيه اللي مكسور فعلًا.
لميكانيكية الدرج (الفتح، السحب، الشاشة الكاملة)، شوف مقدمة الـ Workbench.
افتح التاب
اضغط أيقونة نبضة القلب اللي في القائمة أسفل يمين لوحة التحكم. الـ Workbench بيفتح على تاب Health مفلتر مسبقًا على آخر 24 ساعة.
أيقونة القائمة بتبقى برتقالي لما يكون لحسابك أخطاء حديثة، فنظرة على القائمة بتقولك لو يستاهل تفتحها أصلًا ولا لأ.
الفلاتر
فلترين فوق:
| الفلتر | بيعمل إيه |
|---|---|
| Time | تلات خيارات: Last hour، Last 24 hours، Last 7 days. افتراضيًا آخر 24 ساعة. |
| API endpoint | فلتر مسار نصّي حر، بيتطبّق من ناحية العميل بعد ما المجموعات تتحمّل. بيدعم الـ * wildcards. الـ popover بيعرض تلميح: "You can also use wildcards, like /checkout/*". |
رابط Reset filters بيظهر جنب صف الفلاتر لما فلتر الـ API endpoint يتظبط. العدد الكلي على اليمين (مثلًا 12 error groups) بيعكس العرض المفلتر.
قراءة قائمة المجموعات
العمود الشمال قائمة بمجموعات الأخطاء، مرتّبة حسب العدد (الأعلى الأول). كل صف بيحمل:
- معرّف خطأ بخط ثابت العرض باللون الأحمر. ده اللي XPay جمّع الأخطاء على أساسه (شوف إزاي بيشتغل التجميع تحت).
- شارة عدد على اليمين، بتمثّل عدد الأخطاء في المجموعة دي جوّه النافذة الزمنية.
- طريقة HTTP والمسار اللي الأخطاء ضربت عليه (لما تكون المجموعة حسب الكود أو حسب البارامتر؛ بتغيب للمجموعات اللي حسب النوع بس).
- رسالة خطأ نموذجية من آخر حدوث، مقصوصة لسطر واحد.
اضغط على صف علشان تفتح تفاصيل المجموعة.
تفاصيل المجموعة: الملخص + السجلات
لما تختار مجموعة، اللوحة اليمين بتنقسم لاتنين على الديسكتوب، وبتتركّب فوق بعض على الموبايل.
الملخص
لوحة الملخص بتطلّع محتوى الطلب لآخر حدوث (لما يكون موجود) وقسمين فرعيين.
Impact:
| الحقل | يعني إيه |
|---|---|
| Occurrences | العدد الكلي زائد لافتة النطاق الزمني المحسوب ("in the last 24 hours"، "in the last hour"، إلخ). |
| Path | نقطة نهاية الـ API اللي الأخطاء ضربت عليها. |
| Source | "Dashboard" (مع اسم عضو الفريق لو متاح) أو نوع مفتاح الـ API. |
Error Details (من آخر حدوث في المجموعة دي):
| الحقل | يعني إيه |
|---|---|
| Type | الـ errorType بتاع الخطأ، مثلًا invalid_request_error، api_error. |
| Code | الـ errorCode: المعرّف المحدّد، مثلًا resource_missing، parameter_unknown. |
| Param | حقل محتوى الطلب اللي سبّب الخطأ، مثلًا lineItems[*][price]. |
| Status | حالة HTTP اللي الرد رجّعها. |
| IP Address | الـ IP بتاع العميل. |
| Origin | قيمة ترويسة Origin. |
السجلات
الناحية اليمين بتعرض لحد 10 من أحدث الطلبات الفاشلة في المجموعة دي كصفوف مدمجة. اضغط أي صف علشان تدخل بالتفصيل على عرض التفاصيل الكامل على نمط تاب Logs (الطلب، والرد، والترويسات، والمحتوى، وحقول الخطأ).
إزاي بيشتغل التجميع
طلبين فاشلين بيتحطّوا في نفس المجموعة لما يشتركوا في نفس السبب الجذري، حتى لو كل التفاصيل التانية مختلفة. XPay بيختار مفتاح التجميع بالأولوية دي:
- حسب البارامتر. لو الخطأ ليه حقل
param(حقل محتوى الطلب اللي فشل)، مفتاح المجموعة بيبقى<param> <method> <path>. فهارس المصفوفات في البارامتر بتتوحّد:lineItems[0][price]وlineItems[5][price]بيتجمّعوا فيlineItems[*][price]. ده أكتر تجميع تحديدًا، وبيمسك "الحقل ده غلط في كل مكان". - حسب الكود. غير كده، لو الخطأ ليه
code، مفتاح المجموعة بيبقى<code> <method> <path>. بيمسك "نقطة النهاية دي بترجّع نفس كود الخطأ على طول". - حسب النوع. غير كده، مفتاح المجموعة بيبقى الـ
errorTypeبس. ده البديل الاحتياطي للأخطاء اللي مالهاش كود ولا بارامتر. صفوف المجموعات من النوع ده مش بتعرض طريقة ولا مسار.
نتيجتين تستاهل تعرفهم:
- باگ واحد في كودك بينتج نفس الرفض على مستوى الـ
paramعلى كل line item بيظهر كمجموعة واحدة بعدد عالي، مش كذا مجموعة صغيّرة. - نقطة نهاية بتفشل لسببين مختلفين (واحد حقل ناقص، وواحد enum غلط) بتظهر كمجموعتين، حتى لو ضربوا نفس المسار.
الاحتفاظ بالبيانات
تاب Health بيقرا نفس بيانات api_request_logs اللي تاب Logs بيستخدمها، فهو محكوم بنفس فترة الاحتفاظ 30 يوم. الأخطاء الأقدم من 30 يوم بتختفي من العرض لإن الصفوف المصدر بتتشال فعليًا.
فلتر Time أقصاه آخر 7 أيام، وده جوّه نافذة الاحتفاظ بمسافة مريحة.
استخدام نموذجي
تلات دورات التاب مبني علشانها:
- فحص التراجعات بعد النشر. افتح Health، اظبط الوقت على Last hour، واسرح بعينك على أول القائمة. مجموعة جديدة فوق معناها إن النشر بتاعك بدأ ينتج نوع جديد من الأخطاء.
- تنظيف المتأخرات. اظبط الوقت على Last 7 days، الترتيب أصلًا حسب العدد. أول تلات مجموعات بيكونوا عادةً 80% من حجم أخطائك؛ صلّحهم الأول.
- مشكلة بلّغ عنها تاجر. فلتر نقطة نهاية الـ API على السطح اللي ذكره (مثلًا
/refunds)، واظبط الوقت على Last 24 hours. القائمة بتضيق على الأخطاء في السطح ده بالظبط علشان تشوف حالته وقعت في أنهي مجموعة.
رايح فين بعد كده
مقدمة الـ Workbench
ميكانيكية الدرج، والتابات الأربعة بنظرة سريعة، وإزاي تفتح الـ Workbench.
Logs panel
عرض كل طلب: محتوى الرد، ومحتوى الطلب، والترويسات. المكان اللي بتروح له لما تضغط على صف سجل من مجموعة.
Inspector
ادخل بالتفصيل على مورد معيّن وشوف سجلاته، وأحداثه، والرسم اللي حواليه.
الأخطاء
مغلّف الخطأ، والقائمة الكاملة لقيم errorType وerrorCode، وإزاي تتعامل معاهم
في الكود.
Events panel
ناحية الـ webhook: كل حدث حسابك أطلقه، وكل محاولة تسليم، وكل إعادة محاولة.
نموذج الكائنات
كل بادئة معناها إيه وإزاي الموارد بتتركّب مع بعض.