בדף הזה מוסבר איך להגדיר ולהשתמש ב-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.
-
כדי לראות את היומנים, נכנסים לדף 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) שפועלים בכמה אזורים.
יכול להיות אחד מהערכים הבאים:
|
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:
- נכנסים לדף Service Extensions במסוף Google Cloud .
- לוחצים על הכרטיסייה Plugins (תוספים).
- לוחצים על שם של פלאגין.
- בדף פרטי הפלאגין, לוחצים על הכרטיסייה מעקב.
- כדי לראות את המדדים של פעולות במחזור החיים של התוסף, בוחרים ערכים מהרשימה מסנן פעולות. כברירת מחדל, הערכים
HTTP request headerו-HTTP response headerמסומנים. - כדי לראות את המדדים של גרסה ספציפית של תוסף, בוחרים ערך מהרשימה Plugin version filter. כברירת מחדל, המדדים מוצגים לכל הגרסאות.
- כדי לשנות את התקופה שרוצים להציג לגביה את הנתונים, בוחרים תקופה מוגדרת מראש מתוך בורר הזמן או לוחצים על התאמה אישית ומגדירים שעת התחלה ושעת סיום. כברירת מחדל, הסלקטור מוגדר ל-
1 day.
בדף מעקב, בתרשימי המדדים מוצג מידע שיכול לעזור לכם לעקוב אחרי הביצועים של התוסף.
מדדים של תוספים ל-Service Extensions
אפשר לעקוב אחרי המדדים הבאים של תוספים מנקודת המבט של Service Extensions. המדדים האלה כוללים את הקידומת networkservices.googleapis.com/wasm_plugin/. הקידומת לא מופיעה ברשומות בטבלה.
| סוג המדד | השם המוצג
סוג, יחידה תיאור |
|---|---|
invocation_count
|
מספר ההפעלות של פלאגין Wasm
DELTA, INT64, 1
מספר ההפעלות של הפלאגין במהלך פרק הזמן שנבחר. כל הפעלה של קריאה חוזרת (callback) של תוסף נספרת כהפעלה נפרדת של התוסף. |
invocation_latencies
|
זמן האחזור של הפעלת תוסף Wasm
DELTA, DISTRIBUTION, us
זמן ההפעלה המקומי של התוסף, באלפיות השנייה. המדד כולל רשומות שמוגדרות באמצעות תוויות לכל קריאה חוזרת. |
cpu/usage_times
|
שימוש במעבד (CPU) של פלאגין Wasm אחרי נרמול
DELTA, DISTRIBUTION, us{CPU}
זמן השימוש במעבד (CPU) של הפעלות הפלאגין, במיקרו-שניות. |
memory/bytes_used
|
השימוש בזיכרון של תוסף Wasm
GAUGE, DISTRIBUTION, By
הזיכרון הכולל שהוקצה למכונות וירטואליות של תוסף Wasm, בבייטים. |
מעקב מנקודת המבט של מאזן העומסים
בקטע הזה מתואר המעקב אחרי תוספי שירות מנקודת המבט של מאזן העומסים.
הצגת לוח הבקרה של Monitoring ל-Cloud Load Balancing
מאזני עומסים של אפליקציות מייצאים נתוני מעקב אל Cloud Monitoring.
אפשר להשתמש במדדי המעקב למטרות הבאות:
- הערכת ההגדרה, השימוש והביצועים של מאזן עומסים
- פתרון בעיות
- שיפור השימוש במשאבים וחוויית המשתמש
כדי לצפות במרכז בקרה מוגדר מראש:
- נכנסים לדף Dashboards overview במסוף Google Cloud .
- בקטע 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
|
מספר ההפעלות של התוסף
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
|
הפעלות של תוסף נכשלו עם 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
מספר הפעמים שבהם תוסף מופעל מ-Application Load Balancer. |
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
מספר הבייטים שמאזן העומסים קיבל מהקצה העורפי של התוסף. |
הצגת מדדים של תוספים
כדי לראות את המדדים של פלאגין ספציפי:
נכנסים לדף Metrics explorer במסוף Google Cloud .
ברכיב מדד, מרחיבים את התפריט בחירת מדד. לאחר מכן, מבצעים את הפעולות הבאות:
ברשימת המשאבים, בוחרים את הכלל המתאים של מאזן העומסים של האפליקציה.
ברשימת קטגוריות המדדים, בוחרים באפשרות Https.
ברשימת המדדים, בוחרים מדד של תוסף.
לוחצים על אישור.
ברכיב Filter:
בוחרים את התווית backend_target_type ומגדירים את הערך
WASM_PLUGIN.בוחרים את התווית backend_target_name ומגדירים את שם הפלאגין כערך.
מידע נוסף על סוגי מדדים של איזון עומסים זמין בקטע loadbalancing בדף המדדים Google Cloud .