Auf dieser Seite erfahren Sie, wie Sie Cloud Logging und Cloud Monitoring mit Service Extensions-Plug-ins für Media CDN konfigurieren und verwenden.
Logging
In diesem Abschnitt werden die Logs für Media CDN-Plug-ins für Diensterweiterungen beschrieben. Außerdem wird erläutert, wie Sie die Informationen in Logmeldungen aufrufen und in Beziehung setzen können.
Logeinträge
Mit Service Extensions können Sie während der Ausführung Ihres Plugins Logmeldungen generieren. Das Aufzeichnen von Logs ist standardmäßig deaktiviert. Wenn Sie Logs für ein Plug-in aufzeichnen möchten, aktivieren Sie es, wenn Sie das Plug-in erstellen oder aktualisieren.
Plugin-Logeinträge werden mit den folgenden Kontextinformationen versehen:
- Standardmäßige Log-Anmerkungen wie Zeitstempel und Logebene.
- Die Identität des Plugins, das die Nachricht generiert hat.
- Das Plug-in callback, in dem die Logmeldung generiert wurde.
- Eine
requestId-Trace-ID, mit der sich das Anfragelog ermitteln lässt, dem eine Logmeldung zugeordnet ist.
Logs, die für Dienst-Erweiterungen relevant sind, fallen in eine der folgenden Kategorien:
Plug-in-Logeinträge
Wird durch einen Logging-Aufruf generiert, z. B.
info!(...)für Rust,proxywasm.LogInfo(...)für Go oderLOG_INFOfür C++. Service Extensions exportiert diese Logmeldungen nach Cloud Logging. Sie können Anfrage- und Antwortheader sowie alle Aktionen protokollieren, die das Plug-in ausgeführt hat.Sie können diese Nachrichten über den Dienst
networkservices.googleapis.comaufrufen.Media CDN-Logeinträge
Media CDN-Logmeldungen für HTTP-Anfragen an
EdgeCacheService-Ressourcen mit einer zugehörigen Wasm-Aktion. Dies sind reguläre Media CDN-Logeinträge, die im Dienstedgecache.googleapis.comaufgerufen werden können.
Logging für ein Plug-in aktivieren
Mit Service Extensions können Sie während der Ausführung Ihres Plugins Logmeldungen generieren. Das Aufzeichnen von Logs ist standardmäßig deaktiviert.
Wenn Sie Logs für ein Plug-in aufzeichnen möchten, aktivieren Sie es, wenn Sie das Plug-in erstellen oder aktualisieren.
Verwenden Sie den gcloud beta service-extensions wasm-plugins update-Befehl, um das Logging für ein vorhandenes Plug-in zu aktivieren:
gcloud beta service-extensions wasm-plugins update WASM_PLUGIN \
--log-config=[LOG_CONFIG,...]
Ersetzen Sie Folgendes:
WASM_PLUGIN: die ID oder der voll qualifizierte Name des Plug-insLOG_CONFIG: Logging-Optionen für das Plug-in. Wenn Sie das Logging aktivieren möchten, legen Sie die Optionenableauftruefest. Geben Sie dann die folgenden Details an:sample-rate: Die Abtastrate von Aktivitätsprotokollen als Wert zwischen0und1. Der Wert0gibt an, dass keine Logmeldungen gespeichert werden. Der Standardwert1gibt an, dass alle Log-Nachrichten gespeichert werden. Ein Gleitkommawert zwischen0.0und1.0gibt an, dass ein Prozentsatz der Log-Nachrichten gespeichert wird.min-log-level: die minimale Schweregradstufe von Plug-in-Logmeldungen, die nach Cloud Logging exportiert werden sollen. Der Standardwert istINFO.
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf, um sich Logs anzusehen.
Lognachrichten ansehen
Logs können im Log-Explorer durch Erstellen von Abfragen aufgerufen werden.
Sie können Plug-in-Logs als eigenständige Diensterweiterungs-Logs ansehen. In dieser Ansicht wird jede Plug-in-Logmeldung in einem eigenen Logeintrag aufgezeichnet und nicht automatisch mit Informationen aus dem Anfragelog verknüpft.
Diese Logmeldungen befinden sich im Log networkactions.googleapis.com/wasm_plugin_activity mit dem Ressourcentyp networkactions.googleapis.com/WasmPluginVersion.
Das System fügt diesem Log möglicherweise auch informative Logmeldungen hinzu.
Wenn beispielsweise ein Plug-in-Fehler auftritt, weil ein Plug-in-Aufruf die CPU- oder Arbeitsspeicherlimits überschreitet, wird eine Meldung mit dem Schweregrad ERROR protokolliert. Solche Meldungen können auch unter Fehler ansehen und filtern angezeigt werden.
Sie können auch Lognachrichten aufrufen, die mit den entsprechenden Media CDN-Anfragelogs im Log-Explorer korreliert sind. Wenn Sie Anfragelogs ansehen und einen Anfragelogeintrag maximieren, werden die mit der Anfrage verknüpften Plug-in-Logs unter dem Anfragelog verschachtelt angezeigt. In dieser Ansicht können Sie Plug-in-Logs im Kontext der zugehörigen Anfrage sehen.
Logbeispiele
Beispiel für einen Logeintrag für Diensterweiterungen Der Wert von message wird an den LOG_INFO-Aufruf des Plug-ins übergeben. Der Wert severity hängt von der Logebene ab, die im Plugin-Logaufruf verwendet wird. Im Abschnitt labels ist der Wert der API HTTP_REQUEST_HEADER. Das bedeutet, dass der protokollierte Vorgang der on_http_request_headers-Plugin-Callback ist.
{
"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"
}
requestId und trace sind in beiden Logmeldungen identisch.
{
"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"
}
Beschränkungen
Plug-ins können maximal 16 KiB Nutzlastdaten pro HTTP-Clientanfrage protokollieren. Dieser Betrag wird auf mehrere Protokollierungsaufrufe aufgeteilt, die mit einer bestimmten HTTP-Anfrage verknüpft sind. Das Limit gilt nur für den Text von Logmeldungen, nicht für zusätzliche Metadaten, die dem Logeintrag von Diensterweiterungen hinzugefügt werden.
Wenn beispielsweise ein on_http_request_headers-Callback zwei Protokollierungsaufrufe mit jeweils 4 KiB großen Nachrichten ausführt und ein on_http_response_headers-Callback dann versucht, drei Protokollierungsaufrufe mit jeweils 4 KiB großen Nachrichten für dieselbe HTTP-Anfrage auszuführen, wird die dritte Protokollierungsnachricht verworfen. Es wird eine Logmeldung hinzugefügt, um die Anzahl der vom Plug-in generierten Logmeldungen zu erfassen, die verworfen wurden.
Monitoring
In diesem Abschnitt wird beschrieben, wie Sie Cloud Monitoring-Dashboards verwenden können, um Messwerte für Diensterweiterungen für Media CDN-Plug-ins aufzurufen.
Ausführliche Informationen zu Messwerttypen für Diensterweiterungen finden Sie auf der Seite Google Cloud -Messwerte.
Monitoring-Dashboard für Diensterweiterungen ansehen
So rufen Sie das Monitoring-Dashboard für Dienst-Extensions auf:
- Rufen Sie in der Google Cloud Console die Seite Diensterweiterungen auf.
- Klicken Sie auf den Tab Plugins.
- Klicken Sie auf den Namen eines Plug-ins.
- Klicken Sie auf der Seite Plug-in-Details auf den Tab Monitoring.
- Wenn Sie die Messwerte für Plugin-Lebenszyklusvorgänge aufrufen möchten, wählen Sie Werte aus der Liste Vorgangsfilter aus. Standardmäßig sind die Werte
HTTP request headerundHTTP response headerausgewählt. - Wenn Sie die Messwerte für eine bestimmte Plug‑in-Version aufrufen möchten, wählen Sie einen Wert aus der Liste Filter für Plug‑in-Version aus. Standardmäßig werden Messwerte für alle Versionen angezeigt.
- Wenn Sie den Zeitraum ändern möchten, für den Sie die Daten aufrufen möchten, wählen Sie entweder einen vordefinierten Zeitraum aus der Zeitauswahl aus oder klicken Sie auf Benutzerdefiniert und definieren Sie eine Start- und Endzeit. Standardmäßig ist die Auswahl auf
1 dayfestgelegt.
Auf der Seite Monitoring enthalten die Messwertdiagramme Informationen, mit denen Sie die Leistung von Plug-ins im Blick behalten können.
Plug-in-Messwerte für Diensterweiterungen
Sie können die folgenden Messwerte für Plug-ins aus der Perspektive von Dienst-Erweiterungen überwachen. Diese Messwerte haben das Präfix networkactions.googleapis.com/wasm_plugin/. Das Präfix wurde in den Einträgen der Tabelle weggelassen.
| Messwerttyp | Anzeigename
Art, Typ, Einheit Beschreibung |
|---|---|
invocation_count
|
Anzahl der Aufrufe des Wasm-Plug-ins
DELTA, INT64, 1
Die Anzahl der Aufrufe des Plug-ins im ausgewählten Zeitraum. Jeder Aufruf eines Rückrufs eines Plugins wird als separater Plugin-Aufruf gezählt. |
invocation_latencies
|
Aufruflatenz des Wasm-Plug-ins
DELTA, DISTRIBUTION, us
Die lokale Ausführungszeit des Plug-ins in Millisekunden. Der Messwert enthält labelbezogene Einträge für jeden Callback. |
cpu/usage_times
|
Normalisierte CPU-Nutzung des Wasm-Plug-ins
DELTA, DISTRIBUTION, us{CPU}
Die CPU-Nutzungszeit von Plug-in-Aufrufen in Mikrosekunden. |
memory/bytes_used
|
Arbeitsspeichernutzung des Wasm-Plug-ins
GAUGE, DISTRIBUTION, By
Gesamter von Wasm-Plug-in-VMs zugewiesener Arbeitsspeicher in Byte. |
Plug‑in-Messwerte für Media CDN
Sie können die folgenden Messwerte für Plugins aus Media CDN-Sicht überwachen. Die Messwerttyp-Strings folgen diesem Präfix:
edgecache.googleapis.com/edge_cache_route_rule/network_actions/.
Das Präfix wurde in den Einträgen der Tabelle weggelassen.
| Messwerttyp | Anzeigename
Art, Typ, Einheit Beschreibung |
|---|---|
wasm_action_invocation_count
|
Anzahl der Aufrufe von Service Extensions
DELTA, INT64, 1
Die Anzahl der Aufrufe von Service Extensions, die von Media CDN im ausgewählten Zeitraum verarbeitet wurden. |
wasm_action_invocation_latencies
|
Latenz für den Aufruf von Diensterweiterungen
DELTA, DISTRIBUTION, us
Die Gesamtzeit in Millisekunden, die Media CDN für das Senden und Ausführen des Plug-ins benötigt. Der Messwert umfasst labelbasierte Einträge für Serviceerweiterungen und Rückrufe. |