記錄及監控 Media CDN 外掛程式

本頁說明如何搭配 Media CDN 的 Service Extensions 外掛程式,設定及使用 Cloud LoggingCloud Monitoring

記錄

本節說明 Media CDN 外掛程式的 Service Extensions 記錄,以及如何查看記錄訊息中的資訊並建立關聯。

記錄訊息

Service Extensions 支援在外掛程式執行期間產生記錄訊息。記錄檔功能預設為停用。如要記錄外掛程式的記錄,請在建立外掛程式或更新外掛程式時啟用這項功能。

外掛程式記錄會註記下列背景資訊:

  • 標準記錄註解,例如時間戳記和記錄層級。
  • 產生訊息的外掛程式 ID。
  • 產生記錄訊息的外掛程式 callback
  • requestId 追蹤 ID,有助於判斷記錄訊息與哪個要求記錄相關聯。

與 Service Extensions 相關的記錄屬於下列其中一個類別:

  • 外掛程式記錄訊息

    由記錄呼叫產生,例如 Rust 的 info!(...)、Go 的 proxywasm.LogInfo(...) 或 C++ 的 LOG_INFO。Service Extensions 會將這些記錄訊息匯出至 Cloud Logging。您可以記錄要求和回應標頭,以及外掛程式採取的任何動作。

    您可以使用 networkservices.googleapis.com 服務查看這些訊息。

  • Media CDN 記錄訊息

    針對 HTTP 要求傳送至 EdgeCacheService 資源的 Media CDN 記錄訊息,並包含相關聯的 Wasm 動作。這些是可透過 edgecache.googleapis.com 服務查看的一般 Media CDN 記錄項目。

啟用外掛程式的記錄功能

Service Extensions 支援在外掛程式執行期間產生記錄訊息。記錄檔功能預設為停用。

如要記錄外掛程式的記錄,請在建立外掛程式或更新外掛程式時啟用這項功能。

如要為現有外掛程式啟用記錄功能,請使用 gcloud beta service-extensions wasm-plugins update 指令

gcloud beta service-extensions wasm-plugins update WASM_PLUGIN \
    --log-config=[LOG_CONFIG,...]

更改下列內容:

  • WASM_PLUGIN:外掛程式的 ID 或完整名稱
  • LOG_CONFIG:外掛程式的記錄選項。如要啟用記錄功能,請將 enable 選項設為 true。接著指定下列詳細資料:

    • sample-rate:活動記錄的取樣率,值介於 01 之間。值 0 表示系統不會儲存記錄訊息。預設值 1 表示系統會儲存所有記錄訊息。介於 0.01.0 之間的浮點值,表示儲存的記錄訊息百分比。
    • min-log-level:要匯出至 Cloud Logging 的外掛程式記錄訊息最低嚴重程度。預設值為 INFO

為外掛程式啟用記錄功能後,您可以在 Cloud Logging 中查看外掛程式程式碼中記錄陳述式發出的訊息。

如要查看記錄,請前往 Google Cloud 控制台的「Logs Explorer」頁面。

查看記錄訊息

您可以在 Logs Explorer 中建構查詢,查看記錄。

外掛程式記錄會以獨立的 Service Extensions 記錄形式顯示。在這個檢視畫面中,每個外掛程式記錄訊息都會記錄在自己的記錄中,且不會自動與要求記錄資訊建立關聯。

這些記錄訊息位於 networkactions.googleapis.com/wasm_plugin_activity 記錄中,資源類型為 networkactions.googleapis.com/WasmPluginVersion

系統也可能會將資訊記錄訊息新增至這份記錄。 舉例來說,如果外掛程式調用超出 CPU 或記憶體限制,導致外掛程式失敗,系統就會記錄 ERROR 嚴重程度的訊息。您也可以在「查看及篩選錯誤」中查看這類訊息。

您也可以在 Logs Explorer 中,查看與相應 Media CDN 要求記錄相關的記錄訊息。 查看要求記錄時,展開要求記錄項目後,與要求相關的外掛程式記錄會以巢狀方式顯示在要求記錄下方。這個檢視畫面可協助您瞭解外掛程式記錄,以及相關聯的要求。

記錄檔範例

以 Service Extensions 記錄項目為例,message 的值會傳遞至外掛程式的 LOG_INFO 呼叫。severity 值取決於外掛程式記錄呼叫中使用的記錄層級。在 labels 區段中,API 的值為 HTTP_REQUEST_HEADER,表示記錄的作業是 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 記錄項目如下所示。兩則記錄訊息中的 requestIdtrace 值相同。
{
  "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"
}

限制

外掛程式最多只能記錄每個用戶端 HTTP 要求 16 KiB 的酬載資料。這個金額會分配到與特定 HTTP 要求相關聯的多個記錄呼叫中。這項限制僅適用於記錄訊息文字,不適用於 Service Extensions 新增至記錄檔記錄的其他中繼資料。

舉例來說,如果 on_http_request_headers 回呼各以 4 KiB 的訊息進行兩次記錄呼叫,然後 on_http_response_headers 回呼嘗試以 4 KiB 的訊息進行三次記錄呼叫,但這些呼叫都是針對同一個 HTTP 要求,那麼第三個記錄訊息就會遭到捨棄。系統會新增記錄訊息,記錄遭捨棄的外掛程式產生記錄訊息數量。

監控

本節說明如何使用 Cloud Monitoring 資訊主頁,查看 Media CDN 外掛程式的 Service Extensions 指標。

如要進一步瞭解 Service Extensions 指標類型,請參閱「Google Cloud 指標」頁面。

查看 Service Extensions 的 Monitoring 資訊主頁

如要查看服務擴充功能的監控資訊主頁,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Service Extensions」頁面。

    前往 Service Extensions

  2. 按一下「外掛程式」分頁標籤。
  3. 按一下外掛程式名稱。
  4. 在「外掛程式詳細資料」頁面中,按一下「監控」分頁標籤。
  5. 在「監控」頁面中,指標圖表會顯示有助於監控外掛程式效能的資訊。

  6. 如要查看外掛程式生命週期作業的指標,請從「作業篩選器」清單中選取值。預設會選取 HTTP request headerHTTP response header
  7. 如要查看特定外掛程式版本的指標,請從「外掛程式版本篩選器」清單中選取值。根據預設,系統會顯示所有版本的指標。
  8. 如要變更要查看資料的期間,請從時間選取器選取預先定義的期間,或按一下「自訂」並定義開始和結束時間。選取器預設為 1 day

Service Extensions 的外掛程式指標

您可以從服務擴充功能角度監控外掛程式的下列指標。這些指標會加上 networkactions.googleapis.com/wasm_plugin/ 前置字元。表格中的項目會省略前置字串。

指標類型 顯示名稱
種類、類型、單位
說明
invocation_count Wasm 外掛程式叫用次數
DELTAINT641
所選時間範圍內的外掛程式叫用次數。每次外掛程式 callback 呼叫都會計為一次外掛程式呼叫。
invocation_latencies Wasm 外掛程式叫用延遲
DELTADISTRIBUTIONus
外掛程式的本機執行時間 (以毫秒為單位)。這項指標包含每個回呼的標籤分隔項目。
cpu/usage_times Wasm 外掛程式標準化 CPU 使用率
DELTADISTRIBUTIONus{CPU}
外掛程式調用作業的 CPU 使用時間,以微秒為單位。
memory/bytes_used Wasm 外掛程式記憶體用量
GAUGEDISTRIBUTIONBy
Wasm 外掛程式 VM 分配的總記憶體 (以位元組為單位)。

Media CDN 的外掛程式指標

從 Media CDN 的角度來看,您可以監控外掛程式的下列指標。指標類型字串會遵循下列前置字元:edgecache.googleapis.com/edge_cache_route_rule/network_actions/。表格中的項目會省略前置字串。

指標類型 顯示名稱
種類、類型、單位
說明
wasm_action_invocation_count Service Extensions 叫用次數
DELTAINT641
在所選時間範圍內,Media CDN 處理的 Service Extensions 叫用次數。
wasm_action_invocation_latencies Service Extensions 呼叫延遲時間
DELTADISTRIBUTIONus
Media CDN 傳送及執行外掛程式所花費的總時間 (以毫秒為單位)。這項指標包含服務擴充功能回呼的標籤分隔項目。