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

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

רישום ביומן

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

הודעות ביומן

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

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

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

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

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

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

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

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

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

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

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

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

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

יכול להיות שהמערכת תוסיף ליומן הזה גם הודעות יומן עם מידע. לדוגמה, אם יש כשל בפלאגין כשההפעלה שלו חורגת ממגבלות המעבד (CPU) או הזיכרון, נרשמת הודעה ברמת החומרה 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",
        "serviceExtensionInfo": [
      {
        "serviceExtension": "projects/123456789/locations/global/cdnEdgeExtensions/my-cdn-edge-extension",
        "chain": "edge-plugin-chain",
        "extension": "auth-and-header-plugin",
        "grpcStatus": "OK",
        "processingRequests": [
          {
            "eventType": "RESPONSE_HEADERS",
            "processingEffect": "CONTENT_MODIFIED"
          }
        ]
      }
    ],
    "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 מבצעת שתי קריאות רישום ביומן עם הודעות של 4KiB כל אחת, ואז קריאה חוזרת של on_http_response_headers מנסה לבצע שלוש קריאות רישום ביומן עם הודעות של 4KiB כל אחת לאותה בקשת HTTP, הודעת הרישום החמישית ביומן תושמט. הודעת יומן נוספת כדי לתעד את מספר הודעות היומן שנוצרו על ידי הפלאגין והושמטו.

מעקב

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

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

אתם יכולים לעקוב אחרי התוספים של Media CDN בקצה הרשת מנקודת המבט של EdgeCacheService ב-Metrics Explorer של Monitoring:

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

    לדף Metrics Explorer

  2. בוחרים את המשאב במעקב Media CDN Service Extension.

  3. בוחרים בקטגוריית המדדים תוסף.

  4. מסננים לפי התווית extension_service שמוגדרת לשם הפלאגין.

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