פתרון בעיות במינוי באמצעות Single Message Transforms‏ (SMT)

בדף הזה מפורטים כמה טיפים נפוצים לפתרון בעיות שקשורות למינויים עם SMT.

מעקב אחרי SMT

כדי להבין את הביצועים וההשפעה של SMT על מינוי, אפשר להשתמש במדדי המעקב הבאים:

המדד subscription/message_transform_latencies מודד כמה זמן לוקח להחיל SMT על הודעה. המדד הזה מודד רק את זמן האחזור של SMT, ולא כולל חלקים אחרים של זמן מסירת ההודעה.

המדד מספק שתי תוויות מרכזיות:

  • status: מדווח אם השינוי הצליח או אם נתקלה בו בעיה.

  • filtered: מציין אם ה-SMT גרם לסינון ההודעה. כש-SMT מסנן הודעה במינוי, Pub/Sub מאשר את הפעולה וההודעה לא נשלחת למנויים. התווית filtered הזו היא True רק כש-SMT מבצע את הסינון. הודעות שסוננו באמצעות יכולות הסינון המובנות של Pub/Sub לא משתקפות במדד הספציפי הזה.

המדד subscription/byte_cost משמש לזיהוי הודעות שמסוננות על ידי כללי SMT או שהכללים האלה לא פעלו לגביהן. מחפשים את הערכים הספציפיים האלה:

  • כש-SMT מסנן הודעה, ה-operation_type הוא smt_subscribe_filter_drop.

  • אם SMT לא מצליח לשנות הודעה, מופיע response_code שלא OK.

נוצר בקלוג

אם אתם רואים הצטברות של הודעות שלא נשלחו במינוי, בדקו אם יש שגיאות INVALID_ARGUMENT שדווחו ב-subscription/message_transform_latencies.

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

המאמרים הבאים

  • אם עדיין יש לכם בעיות עם SMTs של מינויים, כדאי לעיין במאמר קבלת תמיכה.