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

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

רישום ביומן

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

הודעות ביומן

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

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

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

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

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

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

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

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

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

רישום ביומן מנקודת המבט של הפלאגין

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

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

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

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

כדי להפעיל רישום ביומן לפלאגין קיים, משתמשים בפקודה 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.

יכול להיות שהמערכת תוסיף ליומן הזה גם הודעות יומן עם מידע. לדוגמה, אם יש כשל בפלאגין כשההפעלה שלו חורגת ממגבלות המעבד (CPU) או הזיכרון, נרשמת הודעה ברמת החומרה 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 מבצעת שתי קריאות רישום ביומן עם הודעות של 4KiB כל אחת, ואז קריאה חוזרת של on_http_response_headers מנסה לבצע שלוש קריאות רישום ביומן עם הודעות של 4KiB כל אחת לאותה בקשת 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: האזור של הקצה העורפי
  • ‫LOGGING_OPTIONAL_MODE: הפעלת רישום ביומן של שדות אופציונליים באחד מהמצבים הבאים:

    • INCLUDE_ALL_OPTIONAL כולל את כל השדות האופציונליים.
    • EXCLUDE_ALL_OPTIONAL (ברירת המחדל) לא כולל את כל שדות האפשרויות.
    • ‫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_target_type מחרוזת סוג היעד לקצה העורפי.
chain מחרוזת שם שרשרת התוספים במשאב של תוסף השירות שתואם לבקשה.
extension מחרוזת השם של התוסף בשרשרת התוספים.
failed_open בוליאני כשההגדרה failOpen של התוסף מוגדרת לערך true, הערך true במדד הזה מציין שהעיבוד נמשך כשהזמן הקצוב לתפוגה של התוסף חלף או כשהתוסף נכשל.

רלוונטי רק למאזני עומסים אזוריים חיצוניים של אפליקציות, למאזני עומסים אזוריים פנימיים של אפליקציות ולמאזני עומסים פנימיים חוצי-אזורים של אפליקציות.

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) תוצאת העיבוד של כל אירוע בבקשת עיבוד.

רלוונטי רק למאזני עומסים אזוריים חיצוניים של אפליקציות, למאזני עומסים אזוריים פנימיים של אפליקציות ולמאזני עומסים פנימיים חוצי-אזורים של אפליקציות.

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

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

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

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

מעקב

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

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

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

למידע מפורט על סוגי המדדים של Service Extensions, קראו את המאמר מדדיGoogle Cloud .

הצגת לוח הבקרה של Monitoring לתוספי שירות

כדי להציג את לוח הבקרה של Monitoring לתוספי שירות:

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

    כניסה לדף Service Extensions

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

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

מדדי פלאגינים ל-Service Extensions

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

סוג המדד השם המוצג
סוג, טיפוס, יחידה
תיאור
invocation_count מספר ההפעלות של פלאגין Wasm
DELTA, INT64, 1
מספר ההפעלות של הפלאגין במהלך פרק הזמן שנבחר. כל הפעלה של קריאה חוזרת (callback) של פלאגין נספרת כהפעלה נפרדת של פלאגין.
invocation_latencies זמן האחזור של הפעלת הפלאגין של Wasm
DELTA, DISTRIBUTION, us
זמן ההפעלה המקומי של הפלאגין, באלפיות השנייה. המדד כולל רשומות עם תוויות לכל קריאה חוזרת (callback).
cpu/usage_times שימוש מנורמל במעבד (CPU) של פלאגין Wasm
DELTA, DISTRIBUTION, us{CPU}
זמן השימוש במעבד (CPU) של הפעלות פלאגין, במיקרו-שניות.
memory/bytes_used שימוש בזיכרון של פלאגין Wasm
GAUGE, DISTRIBUTION, By
סך הזיכרון שהוקצה על ידי מכונות וירטואליות של פלאגין Wasm, בבייטים.

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

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

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

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

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

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

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

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

    כניסה לדף Dashboards overview

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

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

מדדי פלאגין ל-Cloud Load Balancing

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

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

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

סוג המדד השם המוצג
סוג, טיפוס, יחידה
תיאור
invocation_count מספר ההפעלות של התוסף
DELTA, INT64, 1
מספר ההפעלות שנשלחו לתוסף.
invocation_latencies זמני האחזור של הפעלת התוסף
DELTA, DISTRIBUTION, ms
ההתפלגות מחושבת לפי זמן האחזור של כל הפעלה של התוסף. רלוונטי רק לתוספי יתרונות מרכזיים. לא נתמך בפלאגינים.
sent_chunks_count מספר החלקים שנשלחו על ידי התוסף
DELTA, INT64, 1
רלוונטי רק לאירועים מסוג request_body ו-response_body. מספר מקטעי הנתונים שנשלחו לתוסף.
received_chunks_count מספר החלקים שהתוסף קיבל
DELTA, INT64, 1
רלוונטי רק לאירועים מסוג request_body ו-response_body. מספר החלקים שהתקבלו מהתוסף.
failed_open_count ‫Extension failed invocations with fail-open
DELTA, INT64, 1
מספר הפעמים שהפעלה נכשלה כשהמערכת הוגדרה להמשך פעילות במקרה שגיאה, והבקשה המשיכה.
mutation_rejections_count מספר הדחיות של שינויים בתוספים
DELTA, INT64, 1
מספר הקריאות שביקשו שינויים בכותרת, בגוף או בטריילר, אבל נדחו. הדחייה יכולה לקרות מכל מיני סיבות, למשל אם המוטציה לא תקינה או חורגת ממגבלות הגודל.
sent_bytes_count מספר הבייטים שנשלחו לתוסף
DELTA, INT64, By
מספר הבייטים שנשלחו לתוסף.
received_bytes_count מספר הבייטים שהתקבלו מהתוסף
DELTA, INT64, By
מספר הבייטים שהתקבלו מהתוסף.

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

סוג המדד השם המוצג
סוג, טיפוס, יחידה
תיאור
‫https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
מספר הבקשות לקצה העורפי
DELTA, INT64, 1
מספר הפעמים שבהן פלאגין נקרא ממאזן העומסים של האפליקציות.
‫https/backend_request_bytes_count,
https/external/regional/backend_request_bytes_count,
https/internal/backend_request_bytes_count
בייטים של בקשות לקצה העורפי
DELTA, INT64, By
מספר הבייטים שנשלחו ממאזן העומסים לפלאגין.
‫https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
בייטים של תגובת קצה עורפי
DELTA, INT64, By
מספר הבייטים שמאזן העומסים קיבל מקצה העורפי של התוסף.

הצגת מדדי הפלאגין

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

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

    כניסה לדף Metrics Explorer

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

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

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

    3. ברשימת המדדים, בוחרים מדד פלאגין.

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

  3. ברכיב Filter, מבצעים את הפעולות הבאות:

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

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

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