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 Service Extensions-Logs für Media CDN-Plug-ins beschrieben und wie Sie die Informationen in Logeinträgen aufrufen und korrelieren können.
Logeinträge
Service Extensions unterstützt das Generieren von Logeinträgen während der Ausführung Ihres Plug-ins. 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.
Plug-in-Logeinträge werden mit den folgenden Kontextinformationen annotiert:
- Standardmäßige Logannotationen wie Zeitstempel und Logebene.
- Die Identität des Plug-ins, das die Nachricht generiert hat.
- Der Callback des Plug-ins, in dem die Logeintrag generiert wurde.
- Eine
requestId-Trace-ID, mit der das Anfragelog ermittelt werden kann, mit dem ein Logeintrag verknüpft ist.
Logs, die für Service Extensions relevant sind, gehören zu einer 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 Logeinträge nach Cloud Logging. Sie können Anfrage- und Antwortheader sowie alle vom Plug-in ausgeführten Aktionen protokollieren.Sie können diese Nachrichten mit dem Dienst
networkservices.googleapis.comaufrufen.Media CDN-Logeinträge
Media CDN-Logeinträge für HTTP-Anfragen an
EdgeCacheService-Ressourcen mit einem verknüpftenCdnEdgeExtension. Dies sind reguläre Media CDN-Logeinträge, die Sie unter dem Dienstedgecache.googleapis.comaufrufen können.
Logging für ein Plug-in aktivieren
Service Extensions unterstützt das Generieren von Logeinträgen während der Ausführung Ihres Plug-ins. 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 Befehl gcloud beta service-extensions wasm-plugins update, 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 vollständig qualifizierte Name des Plug-insLOG_CONFIG: Logging-Optionen für das Plug-in. Legen Sie für die Optionenableden Werttruefest, um das Logging zu aktivieren. Geben Sie dann die folgenden Details an:sample-rate: die Abtastrate von Aktivitätsprotokollen als Wert zwischen0und1. Der Wert0gibt an, dass Logeinträge nicht gespeichert werden. Der Standardwert1gibt an, dass alle Logeinträge gespeichert werden. Ein Gleitkommawert zwischen0.0und1.0gibt an, dass ein Prozentsatz der Logeinträge gespeichert wird.min-log-level: die niedrigste Wichtigkeitsstufe von Plug-in-Logeinträgen, 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.
Logeinträge ansehen
Logs können durch Erstellen von Abfragen im Log-Explorer aufgerufen werden.
Sie können Plug-in-Logs als eigenständige Service Extensions-Logs ansehen. In dieser Ansicht wird jede Plug-in-Lognachricht in einem eigenen Logeintrag aufgezeichnet und nicht automatisch mit Anfrageloginformationen verknüpft.
Diese Logeinträge befinden sich im Log networkactions.googleapis.com/wasm_plugin_activity mit dem Ressourcentyp networkactions.googleapis.com/WasmPluginVersion.
Das System kann diesem Log auch informative Logeinträge hinzufügen.
Wenn beispielsweise ein Plug-in-Fehler auftritt, weil ein Plug-in-Aufruf die CPU- oder Arbeitsspeicherlimits überschreitet, wird eine Nachricht mit dem Schweregrad ERROR protokolliert. Solche Meldungen werden auch unter Fehler ansehen und filtern angezeigt.
Sie können auch Logeinträge, die mit den entsprechenden Media CDN-Anfragelogs korreliert sind, im Log-Explorer aufrufen. Wenn Sie sich 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 nachvollziehen.
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 Logaufruf des Plug-ins verwendet wird. Im Abschnitt labels ist der Wert der API HTTP_REQUEST_HEADER. Das bedeutet, dass der protokollierte Vorgang der on_http_request_headers-Plug-in-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 Logeinträgen identisch.
{
"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"
}
Beschränkungen
Plug-ins können maximal 16 KiB Nutzlastdaten pro HTTP-Anfrage des Clients protokollieren. Dieser Betrag wird auf mehrere Logging-Aufrufe aufgeteilt, die mit einer bestimmten HTTP-Anfrage verknüpft sind. Das Limit gilt nur für den Text von Logeinträgen, nicht für zusätzliche Metadaten, die dem Logeintrag von Diensterweiterungen hinzugefügt werden.
Wenn beispielsweise ein on_http_request_headers-Callback zwei Logging-Aufrufe mit jeweils 4 KiB-Logeinträgen ausführt und dann ein on_http_response_headers-Callback versucht, drei Logging-Aufrufe mit jeweils 4 KiB-Logeinträgen für dieselbe HTTP-Anfrage auszuführen, wird der fünfte Logeintrag verworfen. Es wird ein Logeintrag hinzugefügt, um die Anzahl der vom Plug-in generierten Logeinträge aufzuzeichnen, die verworfen wurden.
Monitoring
In diesem Abschnitt wird beschrieben, wie Sie mit Cloud Monitoring-Dashboards Service Extensions-Messwerte für Media CDN-Plug-ins aufrufen können.
Ausführliche Informationen zu den Messwerttypen für Diensterweiterungen finden Sie auf der Seite Google Cloud -Messwerte.
Monitoring-Dashboard für Service Extensions ansehen
So rufen Sie das Monitoring-Dashboard für Service Extensions auf:
- Rufen Sie in der Google Cloud Console die Seite Service Extensions 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 Vorgänge im Lebenszyklus des Plug-ins 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 Plug-in-Versionsfilter 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 finden Sie Messwertdiagramme mit Informationen, die Ihnen helfen können, die Leistung des Plug-ins zu überwachen.
Plug-in-Messwerte für Service Extensions
Sie können die folgenden Messwerte für Plug-ins aus der Perspektive von Service Extensions überwachen. Diese Messwerte haben das Präfix networkactions.googleapis.com/wasm_plugin/. Das Präfix wird 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 Callback-Aufruf eines Plug-ins zählt als separater Plug-in-Aufruf. |
invocation_latencies
|
Aufruflatenz des Wasm-Plug-ins
DELTA, DISTRIBUTION, us
Die lokale Ausführungszeit des Plug-ins in Millisekunden. Der Messwert enthält durch Labels abgegrenzte 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. |
Monitoring-Messwerte für Diensterweiterungen für Media CDN
Sie können Media CDN-Edge-Erweiterungen im Monitoring Metrics Explorer aus der Perspektive EdgeCacheService überwachen:
Wechseln Sie in der Google Cloud Console zur Seite Metrics Explorer.
Wählen Sie die überwachte Ressource Media CDN Service Extension aus.
Wählen Sie die Messwertkategorie Erweiterung aus.
Filtern Sie nach dem Label
extension_service, das auf den Namen Ihres Plug-ins festgelegt ist.
In der Vorabversion können Sie die folgenden Messwerte für Erweiterungen in Media CDN überwachen. Diese Messwerte haben das Präfix networkactions.googleapis.com.
Das Präfix wird in den Einträgen der folgenden Tabelle weggelassen.
In der folgenden Tabelle finden Sie den Messwerttyp, den Anzeigenamen, die Art, den Typ, die Einheit und die Beschreibung für jeden Messwert.
| Messwerttyp | Anzeigename
Art, Typ, Einheit Beschreibung |
|---|---|
extension/invocation_count
|
Anzahl der Erweiterungsaufrufe
DELTA, INT64, 1
Die Anzahl der an die Erweiterung gesendeten Aufrufe. |
extension/invocation_latencies
|
Latenzen beim Aufruf von Erweiterungen
DELTA, DISTRIBUTION, ms
Die Verteilung, die aus der Latenz jedes Erweiterungsaufrufs berechnet wird. Gilt nur für Aufruferweiterungen; wird für Plug‑ins nicht unterstützt. |
extension/sent_chunks_count
|
Anzahl der von der Erweiterung gesendeten Chunks
DELTA, INT64, 1
Gilt nur für request_body- und response_body-Ereignisse.
Die Anzahl der Datenblöcke, die an die Erweiterung gesendet wurden. |
extension/received_chunks_count
|
Anzahl der von der Erweiterung empfangenen Chunks
DELTA, INT64, 1
Gilt nur für request_body- und response_body-Ereignisse.
Die Anzahl der von der Erweiterung empfangenen Chunks. |
extension/failed_open_count
|
Fehlgeschlagene Aufrufe der Erweiterung mit Fail-Open
DELTA, INT64, 1
Die Anzahl der fehlgeschlagenen Aufrufe, wenn das System für Fail-Open konfiguriert war und die Anfrage fortgesetzt werden durfte. |
extension/mutation_rejections_count
|
Anzahl der Ablehnungen von Erweiterungsmutationen
DELTA, INT64, 1
Die Anzahl der Aufrufe, die Anfrageheader-, Body- oder Trailer-Mutationen angefordert haben, aber abgelehnt wurden. Ablehnungen können aus verschiedenen Gründen auftreten, z. B. wenn die Mutation ungültig ist oder die Größenbeschränkungen überschreitet. |
extension/sent_bytes_count
|
Anzahl der von der Erweiterung gesendeten Byte
DELTA, INT64, By
Die Anzahl der an die Erweiterung gesendeten Byte. |
extension/received_bytes_count
|
Anzahl der von der Erweiterung empfangenen Byte
DELTA, INT64, By
Die Anzahl der von der Erweiterung empfangenen Byte. |