Logging e monitoraggio per i plug-in Media CDN

Questa pagina mostra come configurare e utilizzare Cloud Logging e Cloud Monitoring con i plug-in di Service Extensions per Media CDN.

Logging

Questa sezione descrive i log di Service Extensions per i plug-in di Media CDN e come visualizzare e correlare le informazioni nei messaggi di log.

Messaggi di log

Service Extensions supporta la generazione di messaggi di log durante l'esecuzione del plug-in. La registrazione dei log è disattivata per impostazione predefinita. Per registrare i log per un plug-in, attivalo quando crei il plug-in o lo aggiorni.

I record di log del plug-in sono annotati con le seguenti informazioni contestuali:

  • Annotazioni dei log standard, come timestamp e livello di log.
  • L'identità del plug-in che ha generato il messaggio.
  • Il callback del plug-in in cui è stato generato il messaggio di log.
  • Un identificatore di traccia requestId che aiuta a determinare il log delle richieste a cui è associato un messaggio di log.

I log pertinenti a Service Extensions rientrano in una delle seguenti categorie:

  • Messaggi di log del plug-in

    Generato da una chiamata di logging, ad esempio info!(...) per Rust, proxywasm.LogInfo(...) per Go o LOG_INFO per C++. Service Extensions esporta questi messaggi di log in Cloud Logging. Puoi registrare le intestazioni delle richieste e delle risposte e tutte le azioni intraprese dal plug-in.

    Puoi visualizzare questi messaggi utilizzando il servizio networkservices.googleapis.com.

  • Messaggi di log di Media CDN

    Messaggi di log di Media CDN per le richieste HTTP alle risorse EdgeCacheService con un CdnEdgeExtension associato. Si tratta di voci di log di Media CDN standard che puoi visualizzare nel servizio edgecache.googleapis.com.

Abilita il logging per un plug-in

Service Extensions supporta la generazione di messaggi di log durante l'esecuzione del plug-in. La registrazione dei log è disattivata per impostazione predefinita.

Per registrare i log per un plug-in, attivalo quando crei il plug-in o lo aggiorni.

Per abilitare il logging per un plug-in esistente, utilizza il comando gcloud beta service-extensions wasm-plugins update:

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

Sostituisci quanto segue:

  • WASM_PLUGIN: l'ID o il nome completo del plug-in
  • LOG_CONFIG: le opzioni di logging per il plug-in. Per abilitare il logging, imposta l'opzione enable su true. Quindi, specifica i seguenti dettagli:

    • sample-rate: la frequenza di campionamento dei log delle attività come valore compreso tra 0 e 1. Il valore 0 indica che i messaggi di log non vengono archiviati. Il valore predefinito 1 indica che vengono archiviati tutti i messaggi di log. Un valore in virgola mobile compreso tra 0.0 e 1.0 indica che viene archiviata una percentuale di messaggi di log.
    • min-log-level: il livello di gravità minimo dei messaggi di log del plug-in da esportare in Cloud Logging. Il valore predefinito è INFO.

Dopo aver attivato il logging per il plug-in, puoi visualizzare i messaggi emessi dalle istruzioni di logging nel codice del plug-in in Cloud Logging.

Per visualizzare i log, nella console Google Cloud , vai alla pagina Esplora log.

Visualizza i messaggi di log

I log possono essere visualizzati creando query in Esplora log.

Puoi visualizzare i log dei plug-in come log di Service Extensions autonomi. In questa visualizzazione, ogni messaggio di log del plug-in viene registrato nel proprio record di log e non viene associato automaticamente alle informazioni del log delle richieste.

Questi messaggi di log si trovano nel log networkactions.googleapis.com/wasm_plugin_activity con il tipo di risorsa networkactions.googleapis.com/WasmPluginVersion.

Il sistema potrebbe anche aggiungere messaggi di log informativi a questo log. Ad esempio, se si verifica un errore del plug-in quando una chiamata del plug-in supera i limiti di CPU o memoria, viene registrato un messaggio con gravità ERROR. Questi messaggi possono essere visualizzati anche in Visualizza e filtra gli errori.

Puoi anche visualizzare i messaggi di log correlati ai log delle richieste di Media CDN corrispondenti in Esplora log. Quando visualizzi i log delle richieste ed espandi una voce di log delle richieste, i log del plug-in correlati alla richiesta vengono visualizzati nidificati sotto il log delle richieste. Questa visualizzazione ti aiuta a comprendere i log dei plug-in nel contesto della richiesta associata.

Esempi di log

Considera una voce di log di esempio di Service Extensions. Il valore di message viene passato alla chiamata LOG_INFO del plug-in. Il valore severity dipende dal livello di log utilizzato nella chiamata di log del plug-in. Nella sezione labels, il valore dell'API è HTTP_REQUEST_HEADER, il che indica che l'operazione registrata è il callback del plug-in 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"
}
La voce di log di Media CDN correlata viene visualizzata come segue. I valori requestId e trace in entrambi i messaggi di log sono gli stessi.
{
  "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"
}

Limitazioni

I plug-in possono registrare fino a 16 KiB di dati del payload per richiesta HTTP del client. Questo importo è suddiviso tra più chiamate di logging associate a una determinata richiesta HTTP. Il limite si applica solo al testo del messaggio di log, non ai metadati aggiuntivi aggiunti al record di log da Service Extensions.

Ad esempio, se un callback on_http_request_headers effettua due chiamate di logging con messaggi da 4 KiB ciascuno e poi un callback on_http_response_headers tenta di effettuare tre chiamate di logging con messaggi da 4 KiB ciascuno per la stessa richiesta HTTP, il quinto messaggio di logging viene ignorato. Viene aggiunto un messaggio di log per registrare il numero di messaggi di log generati dal plug-in che sono stati ignorati.

Monitoraggio

Questa sezione descrive come utilizzare le dashboard di Cloud Monitoring per visualizzare le metriche di Service Extensions per i plug-in Media CDN.

Per informazioni dettagliate sui tipi di metriche di Service Extensions, consulta la pagina Metriche diGoogle Cloud .

Visualizza la dashboard di Monitoring per Service Extensions

Per visualizzare la dashboard di Monitoring per le estensioni di servizio, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Estensioni dei servizi.

    Vai a Service Extensions

  2. Fai clic sulla scheda Plugin.
  3. Fai clic sul nome di un plug-in.
  4. Nella pagina Dettagli plug-in, fai clic sulla scheda Monitoraggio.
  5. Nella pagina Monitoraggio, i grafici delle metriche mostrano informazioni che possono aiutarti a monitorare le prestazioni del plug-in.

  6. Per visualizzare le metriche relative alle operazioni del ciclo di vita del plug-in, seleziona i valori dall'elenco Filtro operazioni. Per impostazione predefinita, sono selezionati i valori HTTP request header e HTTP response header.
  7. Per visualizzare le metriche relative a una versione specifica del plug-in, seleziona un valore dall'elenco Filtro versione plug-in. Per impostazione predefinita, le metriche vengono visualizzate per tutte le versioni.
  8. Per modificare il periodo per cui vuoi visualizzare i dati, seleziona un periodo predefinito dal selettore dell'ora o fai clic su Personalizzato e definisci un'ora di inizio e di fine. Per impostazione predefinita, il selettore è impostato su 1 day.

Metriche dei plug-in per Service Extensions

Puoi monitorare le seguenti metriche per i plug-in dalla prospettiva di Service Extensions. Queste metriche hanno il prefisso networkactions.googleapis.com/wasm_plugin/. Il prefisso viene omesso dalle voci della tabella.

Tipo di metrica Nome visualizzato
Tipo, tipo, unità
Descrizione
invocation_count Conteggio chiamate del plug-in Wasm
DELTA, INT64, 1
Il numero di chiamate del plug-in nell'intervallo di tempo selezionato. Ogni chiamata di callback del plug-in viene conteggiata come una chiamata del plug-in separata.
invocation_latencies Latenza di chiamata del plug-in Wasm
DELTA, DISTRIBUTION, us
Il tempo di esecuzione locale, in millisecondi, del plug-in. La metrica include voci delimitate da etichette per ogni callback.
cpu/usage_times Utilizzo CPU normalizzato del plug-in Wasm
DELTA, DISTRIBUTION, us{CPU}
Il tempo di utilizzo della CPU delle chiamate del plug-in, in microsecondi.
memory/bytes_used Utilizzo memoria del plug-in Wasm
GAUGE, DISTRIBUTION, By
Memoria totale allocata dalle VM del plug-in Wasm, in byte.

Metriche di monitoraggio delle estensioni dei servizi per Media CDN

Puoi monitorare le estensioni perimetrali di Media CDN dalla prospettiva EdgeCacheService in Metrics Explorer di Monitoring:

  1. Nella console Google Cloud , vai alla pagina Esplora metriche.

    Vai a Esplora metriche

  2. Seleziona la risorsa monitorata Estensione di servizio Media CDN.

  3. Seleziona la categoria di metriche Estensione.

  4. Filtra in base all'etichetta extension_service impostata sul nome del plug-in.

In Anteprima, puoi monitorare le seguenti metriche per le estensioni su Media CDN. Queste metriche hanno il prefisso networkactions.googleapis.com/extension. Il prefisso è omesso dalle voci della tabella seguente.

La tabella seguente fornisce il tipo di metrica, il nome visualizzato, il tipo, l'unità e la descrizione per ogni metrica:

Tipo di metrica Nome visualizzato
Tipo, tipo, unità
Descrizione
invocation_count Conteggio chiamate estensione
DELTA, INT64, 1
Il numero di chiamate inviate all'estensione.
invocation_latencies Latenze di chiamata delle estensioni
DELTA, DISTRIBUTION, ms
La distribuzione calcolata dalla latenza di ogni chiamata dell'estensione. Applicabile solo alle estensioni callout; non supportato per i plug-in.
sent_chunks_count Conteggio dei chunk inviati dall'estensione
DELTA, INT64, 1
Applicabile solo agli eventi request_body e response_body. Il numero di blocchi di dati inviati all'estensione.
received_chunks_count Conteggio dei blocchi ricevuti dall'estensione
DELTA, INT64, 1
Applicabile solo agli eventi request_body e response_body. Il numero di blocchi ricevuti dall'estensione.
failed_open_count Chiamate non riuscite dell'estensione con fail-open
DELTA, INT64, 1
Il numero di volte in cui una chiamata non è riuscita quando il sistema era configurato per il fail-open e la richiesta è stata autorizzata a procedere.
mutation_rejections_count Conteggio dei rifiuti delle mutazioni delle estensioni
DELTA, INT64, 1
Il numero di chiamate che hanno richiesto mutazioni di intestazione della richiesta, corpo o trailer, ma sono state rifiutate. I rifiuti possono verificarsi per vari motivi, ad esempio quando la mutazione non è valida o supera i limiti di dimensione.
sent_bytes_count Conteggio byte inviati dall'estensione
DELTA, INT64, By
Il numero di byte inviati all'estensione.
received_bytes_count Conteggio byte ricevuti dall'estensione
DELTA, INT64, By
Il numero di byte ricevuti dall'estensione.