רישום ביומן ומעקב אחרי פלאגינים של מאזן עומסים של אפליקציות ו-Cloud CDN

בדף הזה מוסבר איך להגדיר ולהשתמש ב-Cloud Logging וב-Cloud Monitoring עם תוספים של Service Extensions ל-Cloud Load Balancing ול-Cloud CDN.

רישום ביומן

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

הודעות ביומן

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

רשומות ביומן של פלאגין מסומנות במידע ההקשר הבא:

  • הערות סטנדרטיות ביומן, כמו חותמת זמן ורמת היומן.
  • הזהות של התוסף שיצר את ההודעה.
  • הקריאה החוזרת (callback) של התוסף שבה נוצרה הודעת היומן.
  • מזהה מעקב requestId שעוזר לקבוע את יומן הבקשות שהודעת יומן משויכת אליו.

יומנים שרלוונטיים ל-Service Extensions נכללים באחת מהקטגוריות הבאות:

  • הודעות ביומן של פלאגין

    נוצר על ידי קריאה לרישום ביומן, כמו info!(...) עבור Rust,‏ proxywasm.LogInfo(...) עבור Go או LOG_INFO עבור C++.‏ Service Extensions מייצא את הודעות היומן האלה אל Cloud Logging. אפשר לרשום ביומן את כותרות הבקשות והתגובות ואת כל הפעולות שהתוסף ביצע.

    אפשר לראות את ההודעות האלה באמצעות השירות networkservices.googleapis.com.

  • הודעות ביומן של Cloud Load Balancing

    אפשר לראות את ההודעות האלה באמצעות השירות loadbalancing.googleapis.com.

רישום ביומן מנקודת המבט של התוסף

בקטע הזה מתואר הרישום ביומן של Service Extensions מנקודת המבט של התוסף.

הפעלת רישום ביומן עבור פלאגין

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

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

כדי להפעיל רישום ביומן עבור פלאגין קיים, משתמשים בפקודה gcloud service-extensions wasm-plugins update:

gcloud service-extensions wasm-plugins update WASM_PLUGIN \
    --log-config=[LOG_CONFIG,...]

מחליפים את מה שכתוב בשדות הבאים:

  • WASM_PLUGIN: המזהה או השם המוגדר במלואו של הפלאגין
  • LOG_CONFIG: אפשרויות רישום ביומן עבור הפלאגין. כדי להפעיל את הרישום ביומן, מגדירים את האפשרות enable לערך true. לאחר מכן, מציינים את הפרטים הבאים:

    • sample-rate: תדירות הדגימה של יומני הפעילות כערך בין 0 ל-1. הערך 0 מציין שהודעות יומן לא מאוחסנות. ערך ברירת המחדל 1 מציין שכל הודעות היומן מאוחסנות. ערך נקודה צפה (floating-point) בין 0.0 ל-1.0 מציין את אחוז הודעות היומן שמאוחסנות.
    • min-log-level: רמת החומרה המינימלית של הודעות ביומן של התוסף שיייצאו ל-Cloud Logging. ערך ברירת המחדל הוא INFO.

אחרי שמפעילים את הרישום ביומן עבור התוסף, אפשר לראות את ההודעות שמופיעות בהצהרות הרישום ביומן בקוד התוסף ב-Cloud Logging.

כדי לראות את היומנים, נכנסים לדף Logs Explorer במסוף Google Cloud .

צפייה בהודעות יומן של תוספים

אפשר לראות את היומנים באמצעות יצירת שאילתות ב-Logs Explorer.

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

הודעות היומן האלה מופיעות ביומן networkservices.googleapis.com/wasm_plugin_activity עם סוג המשאב networkservices.googleapis.com/WasmPluginVersion.

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

דוגמאות ליומנים של פלאגינים

ניקח לדוגמה רשומה ביומן של Service Extensions. הערך של message מועבר לקריאה של LOG_INFO בתוסף. הערך severity תלוי ברמת היומן שבה נעשה שימוש בקריאה ליומן של התוסף. בקטע labels, הערך של ה-API הוא HTTP_REQUEST_HEADER, שמציין שהפעולה שנרשמה ביומן היא הקריאה החוזרת (callback) של התוסף on_http_request_headers.

{
  "insertId": "65224aac-0000-24bd-a0e1-582429bd544c@a1",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.networkservices.logging.v1.WasmPluginLogEntry",
    "metroIataCode": "ber",
    "proxyRegionCode": "DE",
    "message": "[add_header_plugin.cc:26]::onRequestHeaders() AddHeaderStreamContext::onRequestHeaders called",
    "requestId": "effc0311-6716-431b-9e2a-7586835fdff1"
  },
  "resource": {
    "type": "networkservices.googleapis.com/WasmPluginVersion",
    "labels": {
      "plugin_version": "prod-1",
      "resource_container": "projects/123456789",
      "location": "global",
      "plugin_name": "add-headers-plugin-prod-resource"
    }
  },
  "timestamp": "2023-05-10T03:05:43.317015458Z",
  "severity": "INFO",
  "labels": {
    "networkservices.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
  },
  "logName": "projects/123456789/logs/networkservices.googleapis.com%2Fwasm_plugin_activity",
  "trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}

מגבלות על רישום ביומן

תוספים יכולים לרשום ביומן עד 16 KiB של נתוני מטען ייעודי (payload) לכל בקשת HTTP של לקוח. הסכום הזה מחולק בין כמה קריאות לרישום ביומן שמשויכות לבקשת HTTP נתונה. המגבלה חלה רק על הטקסט של הודעת היומן, ולא על מטא-נתונים נוספים שמוספים לרשומת היומן על ידי Service Extensions.

לדוגמה, אם קריאה חוזרת (callback) של on_http_request_headers מבצעת שתי קריאות לרישום ביומן עם הודעות של 4 KiB כל אחת, ואז קריאה חוזרת (callback) של on_http_response_headers מנסה לבצע שלוש קריאות לרישום ביומן עם הודעות של 4 KiB כל אחת עבור אותה בקשת HTTP, ההודעה השלישית לרישום ביומן מושמטת. הודעת יומן נוספת כדי לתעד את מספר הודעות היומן שנוצרו על ידי התוסף ונמחקו.

רישום ביומן מנקודת המבט של מאזן העומסים

בקטע הזה מתואר רישום ביומן של Service Extensions מנקודת המבט של איזון העומסים.

הפעלת רישום ביומן בשירות קצה עורפי

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

כדי להפעיל רישום ביומן עבור שירות לקצה העורפי של היעד, משתמשים בפקודה gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-logging \
    --logging-sample-rate=RATE \
    --region=REGION \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

מחליפים את מה שכתוב בשדות הבאים:

  • BACKEND_SERVICE: השם של שירות הקצה העורפי
  • RATE: ערך מ-0.0 עד 1.0, כאשר 0.0 מציין שלא מתבצעת רישום של בקשות ו-1.0 מציין שמתבצע רישום של 100% מהבקשות. ערך ברירת המחדל הוא 1.0. ההגדרה הזו תקפה רק כשמשתמשים בה עם הפרמטר enable-logging. אם לא מציינים את הערך enable-logging, הרישום ביומן מושבת.
  • REGION: האזור של ה-backend
  • LOGGING_OPTIONAL_MODE: מאפשר רישום ביומן של שדות אופציונליים באחד מהמצבים הבאים:

    • INCLUDE_ALL_OPTIONAL כולל את כל השדות האופציונליים.
    • EXCLUDE_ALL_OPTIONAL (default) excludes all optional fields.
    • CUSTOM: רשימה בהתאמה אישית של שדות אופציונליים.
  • OPTIONAL_FIELDS: רשימה מופרדת בפסיקים של שדות אופציונליים כשבוחרים במצב CUSTOM

אחרי שמפעילים את הרישום ביומן בשירות לקצה העורפי, בקשות HTTP או HTTPS נרשמות ביומן באמצעות בקשות ליומנים של Cloud Logging.

כדי לראות את היומנים, נכנסים לדף Logs Explorer במסוף Google Cloud .

הודעות יומן לשירות קצה עורפי

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

  • מידע שמוצג ברוב היומנים Google Cloud , כמו רמת חומרה, מזהה פרויקט, מספר פרויקט וחותמת זמן, כפי שמתואר ביומן LogEntry.
  • השדות ביומן HttpRequest.

יומני הבקשות של מאזני עומסים מסוג HTTP ו-HTTPS מכילים אובייקט service_extension_info במטען הייעודי (payload) של JSON ביומן מאזן העומסים, עם המידע הבא:

שדה סוג תיאור
backend_target_name מחרוזת השם של יעד ה-backend של התוסף.
backend_target_type מחרוזת סוג היעד לקצה העורפי.
chain מחרוזת השם של שרשרת התוספים בשדה של משאב התוסף של השירות שתואם לבקשה.
extension מחרוזת השם של התוסף בשרשרת התוספים.
failed_open בוליאני אם ההגדרה של התוסף היא failOpen true, הערך true של המדד הזה מציין שהעיבוד נמשך כשזמן ההמתנה של התוסף הסתיים או כשהוא נכשל.

ההגדרה הזו חלה רק על מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB), מאזני עומסים פנימיים אזוריים של אפליקציות (ALB) ומאזני עומסים פנימיים של אפליקציות (ALB) שפועלים בכמה אזורים.

grpc_status enum הסטטוס האחרון בזרם gRPC. מידע נוסף זמין במאמר בנושא קודי סטטוס של gRPC.
per_processing_request_info מערך רשימה של נתוני ProcessingRequest לגבי תוספי ext_proc או נתוני CheckRequest לגבי תוספי ext_authz שמתרחשים בזרם gRPC.
per_processing_request_info[].event_type enum סוג האירוע של ProcessingRequest. אפשר להשתמש באחד מהערכים הבאים: REQUEST_HEADERS, REQUEST_BODY, RESPONSE_HEADERS או RESPONSE_BODY.
per_processing_request_info[].latency משך משך הזמן שחלף משליחת הבייט הראשון של ההודעה ProcessingRequest לתוסף ועד לקבלת הבייט האחרון של ההודעה ProcessingResponse.
per_processing_request_info[].processing_effect enum התוצאה של העיבוד לכל אירוע בבקשת עיבוד.

ההגדרה הזו חלה רק על מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB), מאזני עומסים פנימיים אזוריים של אפליקציות (ALB) ומאזני עומסים פנימיים של אפליקציות (ALB) שפועלים בכמה אזורים.

יכול להיות אחד מהערכים הבאים:

  • NONE: מציין שהתוכן לא השתנה.
  • NONE_FAILED_OPEN: מציין שלא בוצעו מוטציות כי התוסף נכשל בפתיחה.
  • CONTENT_MODIFIED: מציין שהתוכן השתנה בעקבות בקשת מוטציה שהתקבלה.
  • IMMEDIATE_RESPONSE: מציין שהתוסף שלח תגובה מיידית כדי לעצור את כל העיבודים הנוספים.
  • MUTATION_REJECTED: מציין שהתוסף ביקש לפחות שינוי אחד שלא מותר, והעיבוד הופסק. הודעות שגיאה מתאימות נרשמות ביומן.
  • UNSPECIFIED: מציין שההשפעה של העיבוד לא ידועה.
per_processing_request_info[].processing_effect_details מחרוזת אם הערך של processing_effect הוא MUTATION_REJECTED, הפרטים על הסיבה לדחיית המוטציה.

ההגדרה הזו חלה רק על מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB), על מאזני עומסים פנימיים אזוריים של אפליקציות (ALB) ועל מאזני עומסים פנימיים של אפליקציות (ALB) שפועלים בכמה אזורים.

resource מחרוזת שם משאב התוסף

מעקב

בקטע הזה מוסבר איך משתמשים בלוחות בקרה של Cloud Monitoring כדי לראות מדדים של תוספים למאזן עומסים של אפליקציות שהוגדרו באמצעות Service Extensions. אפשר לעקוב אחרי תוספים מנקודת המבט של התוסף או מנקודת המבט של מאזן העומסים.

מעקב מנקודת המבט של תוספים

בקטע הזה מתואר מעקב אחרי Service Extensions מנקודת המבט של תוספים.

מידע מפורט על סוגי המדדים של Service Extensions זמין בדף Google Cloud מדדים.

הצגת לוח הבקרה של Monitoring ל-Service Extensions

כדי לראות את לוח הבקרה של המעקב אחרי Service Extensions:

  1. נכנסים לדף Service Extensions במסוף Google Cloud .

    כניסה לדף Service Extensions

  2. לוחצים על הכרטיסייה Plugins (תוספים).
  3. לוחצים על שם של פלאגין.
  4. בדף פרטי הפלאגין, לוחצים על הכרטיסייה מעקב.
  5. בדף מעקב, בתרשימי המדדים מוצג מידע שיכול לעזור לכם לעקוב אחרי הביצועים של התוסף.

  6. כדי לראות את המדדים של פעולות במחזור החיים של התוסף, בוחרים ערכים מהרשימה מסנן פעולות. כברירת מחדל, הערכים HTTP request header ו-HTTP response header מסומנים.
  7. כדי לראות את המדדים של גרסה ספציפית של תוסף, בוחרים ערך מהרשימה Plugin version filter. כברירת מחדל, המדדים מוצגים לכל הגרסאות.
  8. כדי לשנות את התקופה שרוצים להציג לגביה את הנתונים, בוחרים תקופה מוגדרת מראש מתוך בורר הזמן או לוחצים על התאמה אישית ומגדירים שעת התחלה ושעת סיום. כברירת מחדל, הסלקטור מוגדר ל-1 day.

מדדים של תוספים ל-Service Extensions

אפשר לעקוב אחרי המדדים הבאים של תוספים מנקודת המבט של Service Extensions. המדדים האלה כוללים את הקידומת networkservices.googleapis.com/wasm_plugin/. הקידומת לא מופיעה ברשומות בטבלה.

סוג המדד השם המוצג
סוג, יחידה
תיאור
invocation_count מספר ההפעלות של פלאגין Wasm
DELTAINT641
מספר ההפעלות של הפלאגין במהלך פרק הזמן שנבחר. כל הפעלה של קריאה חוזרת (callback) של תוסף נספרת כהפעלה נפרדת של התוסף.
invocation_latencies זמן האחזור של הפעלת תוסף Wasm
DELTADISTRIBUTIONus
זמן ההפעלה המקומי של התוסף, באלפיות השנייה. המדד כולל רשומות שמוגדרות באמצעות תוויות לכל קריאה חוזרת.
cpu/usage_times שימוש במעבד (CPU) של פלאגין Wasm אחרי נרמול
DELTADISTRIBUTIONus{CPU}
זמן השימוש במעבד (CPU) של הפעלות הפלאגין, במיקרו-שניות.
memory/bytes_used השימוש בזיכרון של תוסף Wasm
GAUGEDISTRIBUTIONBy
הזיכרון הכולל שהוקצה למכונות וירטואליות של תוסף Wasm, בבייטים.

מעקב מנקודת המבט של מאזן העומסים

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

הצגת לוח הבקרה של Monitoring ל-Cloud Load Balancing

מאזני עומסים של אפליקציות מייצאים נתוני מעקב אל Cloud Monitoring.

אפשר להשתמש במדדי המעקב למטרות הבאות:

  • הערכת ההגדרה, השימוש והביצועים של מאזן עומסים
  • פתרון בעיות
  • שיפור השימוש במשאבים וחוויית המשתמש

כדי לצפות במרכז בקרה מוגדר מראש:

  1. נכנסים לדף Dashboards overview במסוף Google Cloud .

    מעבר לסקירה הכללית של מרכזי השליטה

  2. בקטע Categories (קטגוריות), לוחצים על GCP.
    • כדי לראות רשימה של מרכזי בקרה עבור כל מאזני העומסים, ברשימה GCP Dashboards (מרכזי בקרה של GCP), לוחצים על מרכז הבקרה בשם Google Cloud Load Balancers (מאזני העומסים של Google Cloud). כדי לראות את לוח הבקרה של מאזן עומסים ספציפי, מאתרים את מאזן העומסים ברשימה ולוחצים על השם שלו.
    • כדי לראות את מרכזי הבקרה המוגדרים מראש רק עבור איזון העומסים שלכם, בוחרים את מרכז הבקרה המתאים.

בנוסף למרכזי הבקרה המוגדרים מראש ב-Monitoring, אתם יכולים ליצור מרכזי בקרה בהתאמה אישית, להגדיר התראות ולשאול שאילתות על המדדים באמצעות Cloud Monitoring API.

מדדים של תוספים ל-Cloud Load Balancing

אפשר לעקוב אחרי המדדים הבאים של תוספים מנקודת המבט של Cloud Load Balancing.

בתצוגה מקדימה, אפשר לעקוב אחרי המדדים הבאים של תוספים בכל סוגי מאזני העומסים של האפליקציות. המדדים האלה כוללים את הקידומת networkservices.googleapis.com. הקידומת לא מופיעה ברשומות בטבלה הבאה.

בטבלה הבאה מפורטים סוג המדד, השם המוצג, הסוג, היחידה והתיאור של כל מדד.

סוג המדד השם המוצג
סוג, יחידה
תיאור
extension/invocation_count מספר ההפעלות של התוסף
DELTAINT641
מספר ההפעלות שנשלחו לתוסף.
extension/invocation_latencies זמני האחזור של הפעלת התוסף
DELTADISTRIBUTIONms
הפיזור שמחושב מזמן האחזור של כל הפעלה של התוסף.
extension/sent_chunks_count מספר החלקים שנשלחו על ידי התוסף
DELTAINT641
רלוונטי רק לאירועים request_body ו-response_body. מספר נתחי הנתונים שנשלחו לתוסף.
extension/received_chunks_count מספר החלקים שהתקבלו בתוסף
DELTAINT641
רלוונטי רק לאירועים מסוג request_body ו-response_body. מספר החלקים שהתקבלו מהתוסף.
extension/failed_open_count הפעלות של תוסף נכשלו עם fail-open
DELTAINT641
מספר הפעמים שהפעלה נכשלה כשהמערכת הוגדרה ל-fail open והבקשה הורשתה להמשיך.
extension/mutation_rejections_count מספר הדחיות של שינוי תוסף
DELTAINT641
מספר הקריאות שביקשו שינויים בכותרת, בגוף או בטריילר, אבל נדחו. יכולות להיות סיבות שונות לדחייה, למשל אם המוטציה לא תקינה או חורגת ממגבלות הגודל.
extension/sent_bytes_count מספר הבייטים שנשלחו לתוסף ‫
DELTAINT64By
מספר הבייטים שנשלחו לתוסף.
extension/received_bytes_count מספר הבייטים שהתקבלו מהתוסף
DELTAINT64By
מספר הבייטים שהתקבלו מהתוסף.

אפשר גם לעקוב אחרי המדדים הבאים. המדדים האלה כוללים את הקידומת loadbalancing.googleapis.com/. הקידומת מושמטת מהערכים בטבלה.

סוג המדד השם המוצג
סוג, יחידה
תיאור
https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
מספר הבקשות לקצה העורפי ‫
DELTAINT641
מספר הפעמים שבהם תוסף מופעל מ-Application Load Balancer.
https/backend_request_bytes_count,
https/external/regional/backend_request_bytes_count,
https/internal/backend_request_bytes_count
בייטים של בקשות לקצה העורפי ‫
DELTAINT64By
מספר הבייטים שנשלחו ממאזן העומסים אל הפלאגין.
https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
בייטים של תגובות מהקצה העורפי ‫
DELTAINT64By
מספר הבייטים שמאזן העומסים קיבל מהקצה העורפי של התוסף.

הצגת מדדים של תוספים

כדי לראות את המדדים של פלאגין ספציפי:

  1. נכנסים לדף Metrics explorer במסוף Google Cloud .

    כניסה לדף Metrics Explorer

  2. ברכיב מדד, מרחיבים את התפריט בחירת מדד. לאחר מכן, מבצעים את הפעולות הבאות:

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

    2. ברשימת קטגוריות המדדים, בוחרים באפשרות Https.

    3. ברשימת המדדים, בוחרים מדד של תוסף.

    4. לוחצים על אישור.

  3. ברכיב Filter:

    1. בוחרים את התווית backend_target_type ומגדירים את הערך WASM_PLUGIN.

    2. בוחרים את התווית backend_target_name ומגדירים את שם הפלאגין כערך.

מידע נוסף על סוגי מדדים של איזון עומסים זמין בקטע loadbalancing בדף המדדים Google Cloud .