כל בקשה ל-Cloud CDN מתועדת ב-Cloud Logging. מידע על הפעלה והשבתה של רישום ביומן זמין במאמר סקירה כללית על רישום ביומן ומעקב אחרי מאזן עומסים חיצוני של אפליקציות ו-Cloud CDN.
היומנים של Cloud CDN משויכים למאזן העומסים החיצוני של האפליקציות (ALB) שאליו מצורפים הקצוות העורפיים של Cloud CDN. האינדקס של יומני Cloud CDN מתבצע קודם לפי כלל העברה ואז לפי מפת URL.
כדי להציג את היומנים של Cloud CDN, פועלים לפי השלבים הבאים.
המסוף
- נכנסים לדף Logs Explorer במסוף Google Cloud .
- בתפריט Resource, בוחרים באפשרות Cloud HTTP Load Balancer.
- כדי לצפות ביומנים:
- צפייה בכל היומנים: בוחרים בתפריט Resource ואז באפשרות All forwarding rules.
- כדי לראות את היומנים של כלל העברה: בוחרים את השם של כלל ההעברה מתוך רשימת כללי ההעברה.
- כדי לראות את היומנים של מפת URL שמשמשת כלל העברה: בוחרים כלל העברה ואז בוחרים מפת URL.
בקשה שמועברת מהקצה העורפי
כדי לוודא שבקשה מוגשת מקצה עורפי שמופעל בו Cloud CDN, צריך לחפש את שלושת השדות העיקריים הבאים:
-
httpRequest: כשבקשה מוגשת מהקצה העורפי, אפשר לראות שהמטמון מלא ולאשר את כתובת ה-URL של הבקשה.cacheFillBytes:NUMBER_OF_BYTEScacheLookup: TruerequestURL: URL
-
jsonPayload: בשדהstatusDetailsאפשר לוודא שהתגובה הגיעה מהקצה העורפי.statusDetails: "response_sent_by_backend"
הבקשה הוגשה מהמטמון
בדוגמה הבאה מוצגת רשומה ביומן שמתייחסת לפגיעה במטמון.
{
insertId: "1oek5rg3l3fxj7"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
cacheId: "SFO-fbae48ad"
statusDetails: "response_from_cache"
}
httpRequest: {
requestMethod: "GET"
requestUrl: "http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg"
requestSize: "577"
status: 304
responseSize: "157"
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
remoteIp: "CLIENT_IP_ADDRESS"
cacheHit: true
cacheLookup: true
}
resource: {
type: "http_load_balancer"
labels: {
zone: "global"
url_map_name: "URL_MAP_NAME"
forwarding_rule_name: "FORWARDING_RULE_NAME"
target_proxy_name: "TARGET_PROXY_NAME"
backend_service_name: ""
project_id: "PROJECT_ID"
}
}
timestamp: "2020-06-08T23:41:30.078651Z"
severity: "INFO"
logName: "projects/PROJECT_ID/logs/requests"
trace: "projects/PROJECT_ID/traces/241d69833e64b3bf83fabac8c873d992"
receiveTimestamp: "2020-06-08T23:41:30.588272510Z"
spanId: "7b6537d3672e08e1"
}
מה נרשם ביומן
בנוסף למידע כללי שמופיע ברוב היומנים, כמו חומרה, מזהה פרויקט, מספר פרויקט וחותמת זמן, היומנים של מאזן העומסים החיצוני של אפליקציות (ALB) ושל Cloud CDN מכילים את הפרטים הבאים:
השדה HttpRequest ביומן, שמתעד את קוד הסטטוס של ה-HTTP, את הבייטים שהוחזרו ואם בוצע חיפוש במטמון או מילוי של המטמון.
השדה
jsonPayload.cacheIdשמציין את המיקום ואת מופע המטמון שממנו הוגשה תגובת המטמון. לדוגמה, תגובה ממטמון באמסטרדם תכלול את הערךAMS-85e2bd4bב-cacheId, כאשרAMSהוא קוד ה-IATA ו-85e2bd4bהוא מזהה אטום של מופע המטמון (כי בחלק מהמיקומים של Cloud CDN יש כמה מטמונים נפרדים).השדות
statusDetailsו-cacheDetailשלjsonPayload.
אפשר לסנן לפי השדות הבאים כדי לקבוע את סטטוס הפגיעה במטמון, הפספוס או האימות מחדש של בקשה שמוגשת על ידי Cloud CDN:
Cache Hit
jsonPayload.statusDetails=("response_from_cache" OR "byte_range_caching")או
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer!=trueCache Hit Validated With Origin Server
jsonPayload.statusDetails="response_from_cache_validated"או
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer=trueCache Miss
jsonPayload.statusDetails="response_sent_by_backend"או
httpRequest.cacheHit!=true
httpRequest.cacheLookup=true
אפשרות אחרת היא להגדיר כותרת תגובה בהתאמה אישית עם cdn_cache_status כדי לראות את סטטוס המטמון מצד הלקוח.
שדות יומן מסוג boolean בדרך כלל מופיעים רק אם הערך שלהם הוא true. אם ערך של שדה בוליאני הוא false, השדה הזה מושמט מהיומן.
הקידוד UTF-8 נדרש בשדות האלה. תווים שאינם תווים בפורמט UTF-8 מוחלפים בסימני שאלה.
כש-Cloud CDN ממלא בקשה של לקוח על ידי הפעלת בקשות אימות או בקשות של טווח בייטים, הוא משמיט את השדה serverIp מרשומת היומן של Cloud Logging עבור בקשת הלקוח. הסיבה לכך היא ש-Cloud CDN יכול לשלוח בקשות לכמה כתובות IP של שרתים בתגובה לבקשה אחת של לקוח.
כל בקשה שמופעלת על ידי Cloud CDN יוצרת רשומה ביומן של Cloud Logging. הרשומה ביומן שמתקבלת מכילה את השדה parentInsertId בתוך jsonPayload. אפשר להשתמש בשדה הזה כדי לזהות את insertId של רשומת היומן עבור בקשת הלקוח היחידה שגרמה ל-Cloud CDN ליזום את בקשת האימות או את בקשת טווח הבייטים. בנוסף, רשומת היומן
מזהה את Cloud CDN כסוכן המשתמש.
מעקב אחרי Cloud CDN
Cloud CDN מייצא נתוני מעקב ל-Cloud Monitoring. המעקב משמש למעקב אחר התקינות של פריסת Cloud CDN.
Cloud Monitoring מספק לוחות בקרה מוגדרים מראש שמופעלים כברירת מחדל כדי לתת תובנות מהירות לגבי תקינות המערכת והביצועים שלה. ב-Monitoring יש גם קבוצה של מרכזי בקרה בהתאמה אישית. ההגדרות של לוחות הבקרה המותאמים אישית האלה זמינות ב-GitHub במאגר הדוגמאות של לוחות בקרה למעקב כקובצי JSON. בספרייה dashboards/networking יש לוח בקרה מותאם אישית ספציפי ל-Cloud CDN בשם cloud-cdn-monitoring.json.
כדי להעלות את לוח הבקרה המותאם אישית הזה ל-Monitoring, פועלים לפי ההוראות במאמר התקנת לוחות בקרה לדוגמה.
filter (resource.url_map_name = 'URL_MAP_NAME')filter (resource.matched_url_path_rule = 'PATH_RULE_NAME')
מרכזי בקרה שהוגדרו מראש
ב-Cloud Monitoring יש מרכזי בקרה מוגדרים מראש ל-Cloud CDN. בלוחות הבקרה האלה מוצגים מדדים מרכזיים שמאפשרים לכם לעקוב אחרי חלוקת התנועה ויעילות המטמון בלי לבצע הגדרה ידנית.
הצגת מרכזי בקרה שהוגדרו מראש
כדי לגשת למרכזי הבקרה המוגדרים מראש:
נכנסים לדף Cloud CDN במסוף Google Cloud .
לוחצים על השם של המקור שרוצים להציג את מרכזי הבקרה שלו.
בדף פרטי המקור, לוחצים על מעקב.
מרכזי הבקרה המוגדרים מראש מופיעים כברירת מחדל.
מדדים בלוחות הבקרה
מרכזי הבקרה המוגדרים מראש מספקים את מדדי המפתח הבאים לגבי מקורות ה-CDN:
חלוקת התנועה של הלקוח
מפה גיאוגרפית דינמית שבה מוצג המקור של בקשות הלקוח. במפה הזו מוצגת סקירה כללית גלובלית של המיקומים שמהם מגיעה התנועה. אתם יכולים לשנות את המסנן Time range כדי לנתח דפוסי חלוקת תנועה בתקופות ספציפיות.
מדדים עיקריים
בטבלה הבאה מפורטים מדדי הליבה שמוצגים בלוח הבקרה.
מדדים תיאור סה"כ בקשות המספר הכולל של כל בקשות ה-HTTP/HTTPS שעובדו על ידי Cloud CDN, שסופקו מהמטמון או משירות לקצה העורפי המקורי. בתרשים מוצג מספר הבקשות לאורך זמן. תעבורה יוצאת (egress) של נתוני מטמון נפח הנתונים הכולל, בבייטים, שמוצג ממטמוני הקצה של Cloud CDN. תרשים העמודות מציג את נפח התעבורה היוצאת לאורך זמן. יחס השגיאות הכולל אחוז הבקשות שהובילו לקוד סטטוס של שגיאה 4xxאו5xx. המדד הזה הוא אינדיקטור עיקרי של תקינות השירות הכוללת.יחס השגיאות 4xx אחוז הבקשות שהובילו לקוד סטטוס בצד הלקוח. אלה קודים של 4 ספרות xx, כמו 404 Not Foundאו403 Forbidden. שגיאות כאלה מצביעות על בעיות בתוכן המבוקש או בהרשאות של הלקוח.שיעור השגיאות 5xx אחוז הבקשות שהובילו לקוד סטטוס בצד השרת. אלה קודים של 5xx, כמו 502 Bad Gatewayאו503 Service Unavailable. שגיאות כאלה מעידות על בעיות בשירות המקור של העורף או בהגדרת מאזן העומסים.שיעור מציאות במטמון (cache hit) היחס, באחוזים, בין הבקשות שמוגשות ישירות מהמטמון של Cloud CDN לבין המספר הכולל של הבקשות. סה"כ מילוי המטמון הנפח הכולל של הנתונים, בבייטים, שאוחזרו מהקצה העורפי של המקור ואוחסנו במטמון של Cloud CDN.
מרכזי בקרה מותאמים אישית
בעזרת Monitoring אפשר ליצור מרכזי בקרה בהתאמה אישית. בלוחות הבקרה אפשר להשתמש בכל מדדי המעקב של מאזני עומסים חיצוניים של אפליקציות. בהמשך מופיעות כמה דוגמאות לקטעי קוד של PromQL שאפשר להדביק בלוחות בקרה מותאמים אישית של Monitoring.
בקשה של מספר הבייטים שחולקו לפי תוצאת מטמון
השאילתה הזו מתמקדת בקצה העורפי שבו מופעל Cloud CDN, וזה נעשה על ידי הכללת cache_result!="DISABLED".
sum by (cache_result) (
rate({"loadbalancing.googleapis.com/https/response_bytes_count", monitored_resource="https_lb_rule", cache_result!="DISABLED"}[1m])
)
השהיית TCP הלוך ושוב של הלקוח ב-95% עבור יעד ספציפי של קצה עורפי
השאילתה הזו כוללת את backend_target_name="example-backend", שמצמצם את התנועה אל ה-backend example-backend. בק-אנד יכול להיות קטגוריה של Cloud Storage, קבוצה של מכונות וירטואליות ב-Compute Engine או בק-אנד חיצוני.
histogram_quantile(
0.95,
sum by (proxy_continent, le) (
rate({"loadbalancing.googleapis.com/https/frontend_tcp_rtt_bucket",
monitored_resource="https_lb_rule",
backend_target_name="example-backend"
}[1m])
)
)
מספר הבקשות לפי קוד התגובה עבור קצה עורפי עם Cloud CDN
השאילתה הזו מפרטת את התנועה לפי סיווג קוד התגובה (2xx, 3xx, 4xx, 5xx) כדי לעזור להפריד בין הצלחות של לקוחות, שגיאות של לקוחות ושגיאות של שרתים.
sum by (response_code_class) (
count_over_time(
{"loadbalancing.googleapis.com/https/request_count",
monitored_resource="https_lb_rule",
cache_result!="DISABLED"
}[1h]
)
)
מספר הבקשות לפי מדינת המקור
השאילתה הזו מציגה את התנועה לפי מדינת המוצא, שנקבעת באמצעות כתובות ה-IP של הלקוח.
sum by (client_country) (
rate({"loadbalancing.googleapis.com/https/request_count", monitored_resource="https_lb_rule"}[1m])
)
המאמרים הבאים
מידע נוסף על רישום ביומן, כולל איך לייצא יומנים ל-BigQuery, ל-Pub/Sub או ל-Cloud Storage, ואיך להגדיר מדדים מבוססי-יומן לצורך מעקב והתראות, זמין במסמכי Cloud Logging.
מידע על השדות שכלולים ברשומה ביומן
httpRequestזמין במאמרHttpRequest.