מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
תיאור הבעיה
חסרים נתוני Analytics בממשק המשתמש של Edge כי שרת ה-Qpidd לא מעביר הודעות של ניתוח נתונים ל-PostgreSQL. ב-Edge, הרכיב edge-qpid-server
תואם לשרת ה-Qpidd.
ב-Qpidd נשמרים שני תורים לכל קבוצה ב-Analytics:
ax-q-axgroup001-consumer-group-001
התור הזה מכיל הודעות ניתוח נתונים שהועברו ממעבדי ההודעות ומהנתבים. ההודעות נשלפות מכאן על ידי
edge-qpid-server
, שמנתחות הודעות ומוסיפה אותן ל-PostgreSQL. אחרי שההודעות יעובדו בהצלחה, הן יוסרו מ'הבאים בתור'.ax-q-axgroup001-consumer-group-001-dl
התור הזה הוא תור האותיות המתות. היא משמשת כיעד של הודעות שהעיבוד שלהן נכשל על ידי
edge-qpid-server
, ולכן לא רוצה לקבל אותן יותר. השדה הזה מאוכלס בדרך כלל כשחורגים ממספרי המסירה המקסימלי, או אם הוספת נתונים חדשים נדחתה על ידי PostgreSQL בגלל שגיאות בזמן הריצה.
הודעת שגיאה
הסיבה העיקרית יכולה להיות שגיאות שונות בזמן הריצה מהרכיב edge-qpid-server
. בדרך כלל, אם edge-qpid-server
מקבל שגיאת זמן ריצה מ-PostgreSQL, הוא יוצר את התור של האותיות המתות אם הוא עדיין לא קיים, ואז שולח שם את ההודעה הבאה:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
סיבות אפשריות
סיבה | תיאור | הוראות לפתרון בעיות רלוונטיות עבור |
---|---|---|
הודעות תקועות בתור של אותיות מתות של qpidd | ל-edge-qpid-server לא הייתה אפשרות להבין את ההודעות שנקראו מברוקר Qpidd או שלא הייתה אפשרות לשמור את ההודעות ב-PostgreSQL.
|
משתמשי Edge בענן פרטי |
שלבים לאבחון נפוץ
מריצים את הפקודה הבאה כדי להציג את הנתונים הסטטיסטיים של תור Qpidd:
qpid-stat -q
הפלט יחזיר את קבוצת התורים שנרשמו אצל המתווך. אם תור שמסתיים בספרות 'dl' יש הודעות שמאוכלסות, ואז יש הודעות שנתקעות בתור של אותיות 'מתות'.
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
הסיבה: הודעות תקועות בתור של מכתבים מתים ב-qpidd
אבחון
התנאי הזה יכול להתרחש בתרחישים הבאים:
- בוצע שדרוג בעבר, שבמהלכו PostgreSQL היה מושבת.
- הפסקה זמנית של PostgreSQL בגלל בעיות ברשת.
- בוצע ניסיון לשלוח הודעה על ידי
edge-qpid-server
ל-PostgreSQL, אבל ב-PostgreSQL הוחזרה שגיאת זמן ריצה.
רזולוציה
רושמים בצד את שמות התורים בשלבים נפוצים באבחון. לדוגמה:
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
מריצים את הפקודה
qpid-tool
כדי להזין הנחיהqpid
אינטראקטיבית:qpid-tool
הפונקציה הזו מחזירה את הערך הבא:
Management Tool for QPID qpid:
מריצים את הפקודה
list broker
כדי לקבל רשימה של מתווכים פעילים:list broker
הפונקציה הזו מחזירה את הערך הבא:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
כאשר בעמודה
ID
מצוין המזהה של המתווך.מציינים את מזהה המתווך. בדוגמה היא 125.
מריצים את הפקודה הבאה כדי להעביר את ההודעות מתור האותיות המתות חזרה לתור בפועל:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
הפונקציה הזו מחזירה את הערך הבא:
OK (0) - {}
אם אין פלט, לא הייתה שום פעולה לביצוע, כלומר אין הודעות להעברה. אם האפשרות
OK(0)
לא מופיעה, צריך לפנות אל התמיכה של Apigee Edge.יוצאים מהטרמינל של כלי ה-qpid.
quit
מחכים 5 דקות ואז שוב מריצים את שלבי האבחון משלבים נפוצים לאבחון. יש לוודא שמתבצע עיבוד של ההודעות שמופיעות בתור בפועל ולוודא שמספר ההודעות המתות נשאר 0.
אם הבעיה ממשיכה, עוברים לקטע הבא.
יש לאסוף פרטי אבחון
אם הבעיה נמשכת גם לאחר ביצוע ההוראות שלמעלה, יש לאסוף את פרטי האבחון הבאים. פונים לצוות התמיכה של Apigee Edge ומשתפים אותם:
- יומני Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- יומני Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- יומני Edge-qpid-server:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- יומני Edge-postgres-server:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
נתונים סטטיסטיים בתור Qpidd:
qpid-stat -q
קבוצת Analytics שהוחזרה באמצעות פקודת ה-curl הבאה:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax