HookGet English להתחיל בחינם

איתור תקלה במסירה שנכשלת

איך קוראים את ציר הזמן: מה כל קוד סטטוס אומר בדרך כלל, ומה עושים איתו.

בקצרה

  • מתחילים מציר הזמן של הניסיונות: הסטטוס, זמן התגובה וגוף התשובה, הכל נרשם.
  • 401 בדרך כלל אומר שסוד החתימה הוחלף; ‏timeout בדרך כלל אומר שהצרכן עושה את העבודה לפני שהוא עונה.
  • תקינות היעד (endpoint) נותנת אחוז הצלחה ואחוזוני זמן תגובה ליממה האחרונה.
msg_01J8ZQ3F9VBAQ4E1S0TZY6P8YV ⁦order.created⁩ · 2 יחידות
#שעהסטטוס קודזמן תגובהלמה
1 09:41:02 נכשל 503 1,204 ms השירות לא זמין
2 09:41:07 נכשל 503 980 ms ניסיון חוזר אחרי 5 שניות
3 09:41:37 נכשל timeout 15,000 ms ניסיון חוזר אחרי 30 שניות
4 09:46:37 נמסר 200 142 ms ניסיון חוזר אחרי 5 דקות

אותו webhook-id בכל ניסיון, כך שהצרכן יכול לסנן כפילויות.

כל ניסיון מול יעד אחד: מה נשלח, מה חזר, כמה זמן זה לקח וכמה חיכינו לפני הניסיון הבא. זו התשובה לשאלה "שלחתם או לא?" בלי שאילתה למסד הנתונים.

קודם קוראים את ציר הזמן

כל ניסיון שומר את סטטוס ה-HTTP, את זמן התגובה, את סוג השגיאה אם לא התקבל סטטוס בכלל, ואת הקילובייט הראשון של גוף התשובה. רוב השאלות נענות עוד לפני שפותחים לוג בצד השני.

הסדר הזה חשוב. כשלקוח כותב "לא קיבלנו את האירוע", הנטייה הטבעית היא לחפש בקוד של הצרכן. אבל ציר הזמן כבר יודע אם הבקשה יצאה, מתי, מה חזר ותוך כמה זמן. גוף התשובה לבדו פותר הרבה מקרים: הודעת שגיאה של מסגרת הפיתוח, עמוד שגיאה של פרוקסי, או תשובה מהשרת הלא נכון.

curl https://api.hookget.com/v1/events/msg_…/attempts -H "authorization: Bearer $HOOKGET_KEY"

מה התשובות הנפוצות אומרות

סימפטוםהסיבה הנפוצהמה עושים
401 או 403 מהיעדהצרכן מאמת מול סוד חתימה ישןבודקים אם הסוד הוחלף והצרכן עדיין מחזיק את הקודם
הצרכן מדווח שהחתימה לא תואמתהגוף פוענח וסודר מחדש לפני האימותמאמתים על הבתים הגולמיים
‏timeoutהצרכן עושה את העבודה לפני שהוא עונהקודם מאשרים, אחר כך מעבדים
5xx לסירוגיןפריסה, או תלות של הצרכןכלום. לוח הניסיונות החוזרים קיים בדיוק בשביל זה
הכל נכשל מרגע מסויםDNS, תעודה שפגה או שינוי בחומת האשבודקים את היעד ישירות מחוץ לרשת שלכם
שום ניסיון לא בוצעאין יעד פעיל שנרשם לסוג האירוע הזהבודקים את מסנן סוגי האירועים על היעד

שתי השורות הראשונות הן אותה בעיה בשני לבושים: הצרכן מחשב חתימה על משהו אחר ממה שנחתם, בגלל סוד שונה או בגלל בתים שונים. במדריך אימות החתימות יש פונקציה שמאמתת על הגוף הגולמי. השורה האחרונה היא המבלבלת ביותר, כי אין כשל לראות: האירוע פורסם, אבל אף יעד לא היה אמור לקבל אותו.

תקינות היעד

curl https://api.hookget.com/v1/endpoints/ep_…/health -H "authorization: Bearer $HOOKGET_KEY"

# success rate over 24h, p50 and p95 latency, consecutive failures,
# and the reason if it has been disabled

התשובה כוללת אחוז הצלחה על פני 24 שעות, זמני תגובה p50 ו-p95, מספר כשלים רצופים, והסיבה אם היעד הושבת. המספרים האלה עונים על שאלה אחרת מציר הזמן: לא "מה קרה לאירוע הזה" אלא "האם היעד הזה בריא בכלל".

גם עוזר AI יכול לקרוא את הנתונים האלה: שרת ה-MCP חושף כלי diagnose שמשלב את בדיקת הכתובת, את מצב המפסק ואת נתוני התקינות לאבחנה כתובה במילים.

שאלות

מאיפה מתחילים כשמסירת וובהוק נכשלת?

מציר הזמן של הניסיונות. כל ניסיון שומר סטטוס, זמן תגובה, סוג שגיאה אם לא היה סטטוס, ואת הקילובייט הראשון של גוף התשובה, ורוב השאלות נענות שם.

למה היעד מחזיר 401 אחרי שהכל עבד?

בדרך כלל כי סוד החתימה הוחלף והצרכן עדיין מאמת מול הסוד הקודם. בודקים אם הייתה החלפה ומעדכנים את הסוד אצל הצרכן.

מה גורם ל-timeout במסירה?

לרוב הצרכן עושה את כל העבודה לפני שהוא עונה. הפתרון הוא לאשר קודם ולעבד אחר כך, כדי שהתשובה תחזור מהר גם כשהעבודה עצמה ארוכה.

צריך לעשות משהו עם שגיאות 5xx לסירוגין?

בדרך כלל לא. הן נובעות מפריסה או מתלות של הצרכן, ולוח הניסיונות החוזרים קיים בדיוק בשביל זה.

אירוע פורסם ואין אף ניסיון מסירה. למה?

כנראה אין יעד פעיל שנרשם לסוג האירוע הזה. בודקים את מסנן סוגי האירועים על היעד, וגם אם היעד מושהה או מושבת.

להתחיל למסור וובהוקים היום

מפנים את הוובהוקים ל-HookGet ורואים את המסירה הראשונה מגיעה, חתומה, תוך פחות מדקה.

פתיחת חשבון חינם לנסות את בודק הוובהוקים החינמי

10,000 מסירות בחודש בחינם, בלי כרטיס אשראי. המסלול החינמי חוסם ולא מחייב, כך שניסיון לא יכול להסתיים בחשבונית.