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

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

רישום ביומן

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

הודעות ביומן

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

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

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

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

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

    נוצרת על ידי קריאה לרישום ביומן, כמו info!(...) ב-Rust,‏ proxywasm.LogInfo(...) ב-Go או LOG_INFO ב-C++‎. הודעות היומן האלה מיוצאות מתוספים לשירות ל-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, הודעת הרישום החמישית ביומן תושמט. הודעת יומן נוספת כדי לתעד את מספר הודעות היומן שנוצרו על ידי הפלאגין והושמטו.

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

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

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

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

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

רלוונטי רק למאזני עומסים חיצוניים אזוריים של אפליקציות (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), למאזני עומסים פנימיים אזוריים של אפליקציות ולמאזני עומסים פנימיים חוצי-אזורים של אפליקציות.

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

צפייה במדדי הפלאגינים

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

  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 .