Questa pagina mostra come configurare e utilizzare Cloud Logging e Cloud Monitoring con i plug-in Service Extensions per Cloud Load Balancing e Cloud CDN.
Logging
Questa sezione descrive la registrazione per i plug-in del bilanciatore del carico delle applicazioni. Il logging è possibile sia dal punto di vista del plug-in sia da quello del bilanciatore del carico.
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, abilitalo quando crei il plug-in o lo aggiorni.
I record di log dei plug-in sono annotati con le seguenti informazioni contestuali:
- Annotazioni standard dei log, 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
requestIdche aiuta a determinare il log delle richieste a cui è associato un messaggio di log.
I log pertinenti alle estensioni di servizio rientrano in una delle categorie seguenti:
Messaggi di log del plug-in
Generato da una chiamata di logging, ad esempio
info!(...)per Rust,proxywasm.LogInfo(...)per Go oLOG_INFOper C++. Service Extensions esporta questi messaggi di log in Cloud Logging. Puoi registrare le intestazioni di richiesta e risposta e qualsiasi azione intrapresa dal plug-in.Puoi visualizzare questi messaggi utilizzando il servizio
networkservices.googleapis.com.Messaggi di log di Cloud Load Balancing
Puoi visualizzare questi messaggi utilizzando il servizio
loadbalancing.googleapis.com.
Registrazione dei log dal punto di vista del plug-in
Questa sezione descrive la registrazione di Service Extensions dal punto di vista del plug-in.
Abilitare 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 di un plug-in, abilitalo quando crei il plug-in o lo aggiorni.
Per abilitare la registrazione per un plug-in esistente, utilizza il
comando gcloud service-extensions wasm-plugins update:
gcloud service-extensions wasm-plugins update WASM_PLUGIN \
--log-config=[LOG_CONFIG,...]
Sostituisci quanto segue:
WASM_PLUGIN: l'ID o il nome completo del plug-inLOG_CONFIG: opzioni di logging per il plug-in. Per abilitare la registrazione, imposta l'opzioneenablesutrue. Quindi, specifica i seguenti dettagli:sample-rate: la frequenza di campionamento dei log attività come valore compreso tra0e1. Il valore0indica che i messaggi di log non vengono archiviati. Il valore predefinito1indica che vengono archiviati tutti i messaggi di log. Un valore in virgola mobile compreso tra0.0e1.0indica che viene memorizzata 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.
Per visualizzare i log, nella console Google Cloud , vai alla pagina Esplora log.
Visualizzare i messaggi di log per i plug-in
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 è associato automaticamente alle informazioni di log delle richieste.
Questi messaggi di log si trovano nel log networkservices.googleapis.com/wasm_plugin_activity con il tipo di risorsa networkservices.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 un'invocazione del plug-in
supera i limiti di CPU o memoria, viene registrato un messaggio con gravità ERROR. Questi
messaggi possono essere visualizzati anche in Visualizzare e filtrare gli errori.
Esempi di log dei plug-in
Prendi in considerazione 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.networkservices.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": "networkservices.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": {
"networkservices.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
},
"logName": "projects/123456789/logs/networkservices.googleapis.com%2Fwasm_plugin_activity",
"trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
Limitazioni per la registrazione
I plug-in sono limitati alla registrazione di un massimo di 16 KiB di dati di payload per richiesta HTTP client. Questo importo viene 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 di 4 KiB ciascuno e poi un callback on_http_response_headers
tenta di effettuare tre chiamate di logging con messaggi di 4 KiB ciascuno per la stessa
richiesta HTTP, il terzo messaggio di logging viene eliminato. Viene aggiunto un messaggio di log
per registrare il numero di messaggi di log generati dal plug-in che sono stati eliminati.
Logging dal punto di vista del bilanciatore del carico
Questa sezione descrive la registrazione di Service Extensions dal punto di vista del bilanciatore del carico.
Abilita il logging su un servizio di backend
Puoi abilitare la registrazione per i plug-in del bilanciatore del carico delle applicazioni durante la creazione di un servizio abilitando la registrazione sul servizio di backend che è la destinazione di una richiesta.
Per abilitare la registrazione per il servizio di backend di destinazione, utilizza il
comando gcloud compute backend-services update.
gcloud compute backend-services update BACKEND_SERVICE \
--enable-logging \
--logging-sample-rate=RATE \
--region=REGION \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
Sostituisci quanto segue:
BACKEND_SERVICE: il nome del servizio di backendRATE: un valore compreso tra0.0e1.0, dove0.0indica che nessuna richiesta viene registrata e1.0indica che il 100% delle richieste viene registrato. Il valore predefinito è1.0. Questa impostazione è efficace solo se utilizzata con il parametroenable-logging. Se omettienable-logging, il logging è disattivato.REGION: la regione del backendLOGGING_OPTIONAL_MODE: attiva la registrazione per i campi facoltativi in una di queste modalità:INCLUDE_ALL_OPTIONALinclude tutti i campi facoltativi.EXCLUDE_ALL_OPTIONAL(valore predefinito) esclude tutti i campi facoltativi.CUSTOMinclude un elenco personalizzato di campi facoltativi.
OPTIONAL_FIELDS: un elenco separato da virgole di campi facoltativi quando selezioni la modalitàCUSTOM
Dopo aver attivato la registrazione nel servizio di backend, le richieste HTTP o HTTPS vengono registrate utilizzando i log di Cloud Logging.
Per visualizzare i log, nella console Google Cloud , vai alla pagina Esplora log.
Messaggi di log per un servizio di backend
In generale, le voci di log del bilanciatore del carico delle applicazioni contengono informazioni utili per monitorare ed eseguire il debug del traffico HTTP o HTTPS. Le voci di log contengono i seguenti tipi di informazioni:
- Informazioni mostrate nella maggior parte dei log Google Cloud , come gravità, ID progetto, numero di progetto e timestamp, come descritto nel log LogEntry.
- Campi log HttpRequest.
I log delle richieste per i bilanciatori del carico HTTP e HTTPS contengono un oggetto service_extension_info nel payload JSON della voce di log del bilanciatore del carico con le seguenti informazioni:
| Campo | Tipo | Descrizione |
|---|---|---|
backend_target_name |
string | Il nome del target di backend dell'estensione. |
backend_target_type |
string | Tipo di target di backend. |
chain |
string | Nome della catena di estensioni all'interno della risorsa di estensione di servizio che corrisponde alla richiesta. |
extension |
string | Il nome dell'estensione all'interno della catena di estensioni. |
grpc_status |
enum | Lo stato più recente dello stream gRPC. Per saperne di più, consulta Codici di stato gRPC. |
per_processing_request_info |
matrice | Un elenco di statistiche ProcessingRequest per le estensioni ext_proc
o statistiche CheckRequest per le estensioni ext_authz che si verificano
nel flusso gRPC.
|
per_processing_request_info[].event_type |
enum | Il tipo di evento di ProcessingRequest. Può essere uno dei seguenti valori:
REQUEST_HEADERS, REQUEST_BODY,
RESPONSE_HEADERS o RESPONSE_BODY.
|
per_processing_request_info[].latency |
duration | La durata dall'invio del primo byte del messaggio ProcessingRequest
all'estensione alla ricezione dell'ultimo byte del
messaggio ProcessingResponse. |
resource |
string | Nome della risorsa di estensione |
Monitoraggio
Questa sezione descrive come utilizzare le dashboard di Cloud Monitoring per visualizzare le metriche per i plug-in del bilanciatore del carico delle applicazioni configurati utilizzando Service Extensions. Puoi monitorare i plug-in dalla prospettiva del plug-in o del bilanciatore del carico.
Monitoraggio dal punto di vista dei plug-in
Questa sezione descrive il monitoraggio di Service Extensions dal punto di vista dei plug-in.
Per informazioni dettagliate sui tipi di metriche di Service Extensions, consulta la pagina Google Cloud metriche.
Visualizza la dashboard di Monitoring per le estensioni di servizio
Per visualizzare la dashboard di Monitoring per le estensioni di servizio:
- Nella console Google Cloud , vai alla pagina Estensioni di servizio.
- Fai clic sulla scheda Plug-in.
- Fai clic sul nome di un plug-in.
- Nella pagina Dettagli plug-in, fai clic sulla scheda Monitoraggio.
- Per visualizzare le metriche per le operazioni del ciclo di vita dei plug-in, seleziona i valori dall'elenco
Filtro operazione. Per impostazione predefinita, sono selezionati i valori
HTTP request headereHTTP response header. - Per visualizzare le metriche per 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.
- Per modificare il periodo per cui vuoi visualizzare i dati, seleziona un periodo predefinito dal selettore dell'ora oppure fai clic su Personalizzato e definisci un'ora di inizio e di fine. Per impostazione predefinita, il selettore è impostato su
1 day.
Nella pagina Monitoraggio, i grafici delle metriche mostrano informazioni che possono aiutarti a monitorare il rendimento dei plug-in.
Metriche dei plug-in per Service Extensions
Puoi monitorare le seguenti metriche per i plug-in dalla prospettiva delle estensioni di servizio. Queste metriche hanno il prefisso
networkservices.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 separata. |
invocation_latencies
|
Latenza di chiamata del plug-in Wasm
DELTA, DISTRIBUTION, us
Il tempo di esecuzione locale del plug-in, in millisecondi. 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. |
Monitoraggio dal punto di vista del bilanciatore del carico
Questa sezione descrive il monitoraggio di Service Extensions per i plug-in dal punto di vista del bilanciatore del carico.
Visualizza la dashboard di Monitoring per Cloud Load Balancing
I bilanciatori del carico delle applicazioni esportano i dati di monitoraggio in Cloud Monitoring.
Utilizza le metriche di Monitoring per i seguenti scopi:
- Valutare la configurazione, l'utilizzo e le prestazioni di un bilanciatore del carico
- Risoluzione dei problemi
- Migliorare l'utilizzo delle risorse e l'esperienza utente
Per visualizzare una dashboard predefinita:
- Nella console Google Cloud , vai alla pagina Panoramica delle dashboard.
- Nella sezione Categorie, fai clic su Google Cloud.
- Per visualizzare un elenco di dashboard per tutti i tuoi bilanciatori del carico, nell'elenco Dashboard GCP, fai clic sulla dashboard denominata Bilanciatori del carico Google Cloud. Per visualizzare la dashboard di un bilanciatore del carico specifico, individua il bilanciatore del carico nell'elenco e fai clic sul nome.
- Per visualizzare le dashboard predefinite solo per i tuoi bilanciatori del carico, seleziona la dashboard appropriata.
Oltre alle dashboard predefinite in Monitoring, puoi creare dashboard personalizzate, configurare avvisi ed eseguire query sulle metriche tramite l'API Cloud Monitoring.
Metriche dei plug-in per Cloud Load Balancing
Puoi monitorare le seguenti metriche per i plug-in dal punto di vista di Cloud Load Balancing.
Queste metriche hanno il prefisso loadbalancing.googleapis.com/. Il prefisso viene omesso
dalle voci della tabella.
| Tipo di metrica | Nome visualizzato
Tipo, Tipo, Unità Descrizione |
|---|---|
https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
|
Conteggio richieste backend
DELTA, INT64, 1
Il numero di volte in cui un plug-in viene chiamato dal bilanciatore del carico delle applicazioni. |
https/backend_request_bytes_count,
https/external/regional/backend_request_bytes_count,
https/internal/backend_request_bytes_count
|
Byte richieste backend
DELTA, INT64, By
Il numero di byte inviati dal bilanciatore del carico al plug-in. |
https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
|
Byte risposta backend
DELTA, INT64, By
Il numero di byte ricevuti dal bilanciatore del carico dal backend dell'estensione. |
Visualizzare le metriche dei plug-in
Per visualizzare le metriche di un plug-in specifico:
Nella console Google Cloud , vai alla pagina Esplora metriche.
Vai a Esplora metriche
Nell'elemento Metrica, espandi il menu Seleziona una metrica. Poi, procedi nel seguente modo:
Dall'elenco delle risorse, seleziona la regola del bilanciatore del carico delle applicazioni appropriata.
Dall'elenco delle categorie di metriche, seleziona Https.
Dall'elenco delle metriche, seleziona una metrica del plug-in.
Fai clic su Applica.
Nell'elemento Filtro, segui questi passaggi:
Seleziona l'etichetta backend_target_type e imposta il valore su
WASM_PLUGIN.Seleziona l'etichetta backend_target_name e imposta il nome del plug-in come valore.
Per saperne di più sui tipi di metriche del bilanciatore del carico, consulta la sezione loadbalancing della pagina delle metriche di Google Cloud .