רישום ביומן ומעקב בתוספים של Media CDN

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

רישום ביומן

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

הודעות ביומן

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

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

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

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

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

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

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

  • הודעות ביומן של Media CDN

    הודעות יומן של Media CDN לבקשות HTTP למשאבי EdgeCacheService עם פעולת Wasm משויכת. אלה רשומות רגילות ביומן של Media CDN שאפשר לראות בשירות edgecache.googleapis.com.

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

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

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

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

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

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

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

אפשר גם לראות הודעות יומן שמשויכות ליומני הבקשות התואמים של Media CDN ב-Logs Explorer. כשצופים ביומני בקשות ומרחיבים רשומה ביומן הבקשות, התוסף רושם ביומן את הנתונים שקשורים לבקשה, והם מופיעים כרשומות משנה ביומן הבקשות. התצוגה הזו עוזרת להבין את יומני התוספים בהקשר של הבקשה המשויכת.

דוגמאות ליומן

ניקח לדוגמה רשומה ביומן של 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.networkactions.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": "networkactions.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": {
    "networkactions.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
  },
  "logName": "projects/123456789/logs/networkactions.googleapis.com%2Fwasm_plugin_activity",
  "trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
רשומה ביומן שקשורה ל-Media CDN נראית כך. הערכים של requestId ו-trace בשני מסרי היומן זהים.
{
  "insertId": "6c95cc54-0000-26ba-ba73-f403043c328c@a1",
  "jsonPayload": {
    "cacheMode": "USE_ORIGIN_HEADERS",
    "@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
    "wasmAction": "add-headers-action-prod-resource",
    "cacheKeyFingerprint": "f04d02bb12f2e79e",
    "proxyStatus": "Google-Edge-Cache",
    "clientCity": "Erlangen",
    "clientAsn": "8881",
    "origin": "example-origin",
    "cacheId": "ber",
    "tlsVersion": "NONE",
    "latency": "0.002840304s",
    "originIp": "142.250.145.128",
    "requestId": "effc0311-6716-431b-9e2a-7586835fdff1",
    "clientRegionCode": "DE",
    "originalRequestId": "7656c418-df7c-4ae5-9db5-4f247ec5a82c",
    "httpTtfb": "0.002814903s",
    "metroIataCode": "BER",
    "proxyRegionCode": "DE",
    "cacheStatus": "hit"
  },
  "httpRequest": {
    "requestMethod": "GET",
    "requestUrl": "https://example.com/image.jpg",
    "requestSize": "1631",
    "status": "200",
    "responseSize": "402907",
    "userAgent": "Wtrace",
    "remoteIp": "2001:1438:1:19::5",
    "protocol": "HTTP/1.1"
  },
  "resource": {
    "type": "edgecache.googleapis.com/EdgeCacheRouteRule",
    "labels": {
      "location": "global",
      "route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example-origin",
      "matched_path": "/turing/",
      "route_type": "ORIGIN",
      "path_matcher_name": "routes",
      "resource_container": "projects/123456789",
      "service_name": "example-service"
    }
  },
  "timestamp": "2023-05-10T03:05:43.321347304Z",
  "logName": "projects/bdn-prober/logs/edgecache.googleapis.com%2Fedge_cache_request",
  "trace": "projects/1069774196212/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:49.919781008Z"
}

מגבלות

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

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

מעקב

בקטע הזה מוסבר איך אפשר להשתמש בלוחות בקרה של Cloud Monitoring כדי לראות את מדדי Service Extensions של תוספים ל-Media CDN.

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

מדדי פלאגין ל-Media CDN

אפשר לעקוב אחרי המדדים הבאים של תוספים מנקודת המבט של Media CDN. מחרוזות של סוגי מדדים מתחילות בקידומת הבאה: edgecache.googleapis.com/edge_cache_route_rule/network_actions/. הקידומת לא מופיעה ברשומות בטבלה.

סוג המדד השם המוצג
סוג, יחידה
תיאור
wasm_action_invocation_count מספר ההפעלות של Service Extensions
DELTAINT641
מספר ההפעלות של Service Extensions שטופלו על ידי Media CDN במהלך פרק הזמן שנבחר.
wasm_action_invocation_latencies זמן האחזור של הפעלת Service Extensions ‫
DELTADISTRIBUTIONus
הזמן הכולל, באלפיות השנייה, שנדרש ל-Media CDN כדי לשלוח ולהפעיל את הפלאגין. המדד כולל רשומות עם תוויות של קריאות חוזרות של Service Extensions.