Logging e monitoraggio per bilanciamento del carico HTTP(S) e Cloud CDN

Questo documento illustra come configurare e utilizzare Cloud Logging e Cloud Monitoring con il bilanciamento del carico HTTP(S) e Cloud CDN.

Logging

Puoi abilitare, disabilitare e visualizzare i log per un servizio di backend HTTP(S) di bilanciamento del carico. Per il bilanciamento del carico HTTP(S) con bucket di backend, il logging viene abilitato automaticamente e non può essere disabilitato.

Abilita o disabilita il logging per ogni servizio di backend. Puoi configurare se registrare tutte le richieste o una frazione campionata in modo casuale.

Devi assicurarti di non avere un'esclusione dei log applicabile al bilanciatore del carico HTTP(S) esterno. Per istruzioni su come verificare che i log Cloud HTTP Load Balancer siano consentiti, consulta la sezione Visualizzazione delle esclusioni di tipi di risorse.

Attivazione del logging su un nuovo servizio di backend

console

  1. Vai alla pagina Bilanciamento del carico in Google Cloud Console.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic sul nome del bilanciatore del carico.
  3. Fai clic su Modifica .
  4. Fai clic su Configurazione backend.
  5. Seleziona Crea un servizio di backend.
  6. Compila i campi obbligatori del servizio di backend.
  7. Fai clic su Abilita il logging.
  8. Imposta una frazione di Frequenza di campionamento. Puoi impostare una tariffa da 0.0 a 1.0 (impostazione predefinita).
  9. Fai clic su Aggiorna per completare la modifica del servizio di backend.
  10. Fai clic su Aggiorna per completare la modifica del bilanciatore del carico.

gcloud: modalità globale

gcloud compute backend-services create BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con bilanciatori del carico HTTP(S) esterni globali.
  • --enable-logging abilita il logging per quel servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

gcloud: modalità regionale

gcloud compute backend-services create BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED

dove

  • --region indica che il servizio di backend è a livello di area geografica. Utilizza questo campo per i servizi di backend utilizzati con bilanciatori del carico HTTP(S) esterni a livello di area geografica.
  • --enable-logging abilita il logging per quel servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

gcloud: modalità classica

gcloud compute backend-services create BACKEND_SERVICE \
 --global \
 --enable-logging \
 --logging-sample-rate=VALUE \
 --load-balancing-scheme=EXTERNAL

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con il bilanciatore del carico HTTP(S) esterno globale (classico).
  • --enable-logging abilita il logging per quel servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

Attivazione del logging su un servizio di backend esistente

console

  1. Vai alla pagina Bilanciamento del carico in Google Cloud Console.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic sul nome del bilanciatore del carico.
  3. Fai clic su Modifica .
  4. Fai clic su Configurazione backend.
  5. Fai clic su Modifica accanto al tuo servizio di backend.
  6. Fai clic su Abilita il logging.
  7. Imposta una frazione di Frequenza di campionamento. Puoi impostare una tariffa da 0.0 a 1.0 (impostazione predefinita).
  8. Fai clic su Aggiorna per completare la modifica del servizio di backend.
  9. Fai clic su Aggiorna per completare la modifica del bilanciatore del carico.

gcloud: modalità globale

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con il bilanciatore del carico HTTP(S) esterno globale.
  • --enable-logging abilita il logging per quel servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

gcloud: modalità regionale

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE

dove

  • --region indica che il servizio di backend è a livello di area geografica. Utilizza questo campo per i servizi di backend utilizzati con bilanciatori del carico HTTP(S) esterni a livello di area geografica.
  • --enable-logging abilita il logging per quel servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

gcloud: modalità classica

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con il bilanciatore del carico HTTP(S) esterno globale (classico).
  • --enable-logging abilita il logging per quel servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

Disabilitazione o modifica del logging su un servizio di backend esistente

console

  1. Vai alla pagina Bilanciamento del carico in Google Cloud Console.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic sul nome del bilanciatore del carico.
  3. Fai clic su Modifica .
  4. Fai clic su Configurazione backend.
  5. Fai clic sulla accanto al tuo servizio di backend.
  6. Cancella Abilita logging per disabilitare del tutto il logging.
  7. Se lasci abilitato il logging, puoi impostare una frazione di frequenza di campionamento diversa. Puoi impostare la tariffa da 0.0 a 1.0 (impostazione predefinita). Per ridurre il numero di log archiviati al 20%, imposta il valore su 0.2.
  8. Fai clic su Aggiorna per completare la modifica del servizio di backend.
  9. Fai clic su Aggiorna per completare la modifica del bilanciatore del carico.

gcloud: modalità globale

Disattivare completamente il logging

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con bilanciatori del carico HTTP(S) esterni globali.
  • --region indica che il servizio di backend è a livello di area geografica. Utilizza questo campo per i servizi di backend utilizzati con bilanciatori del carico HTTP(S) esterni a livello di area geografica.
  • --no-enable-logging disabilita la registrazione per tale servizio di backend.

Modificare la frequenza di campionamento di logging

gcloud compute backend-services update BACKEND_SERVICE \
 --global \
 --logging-sample-rate=VALUE

gcloud: modalità regionale

Disattivare completamente il logging

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --no-enable-logging

dove

  • --region indica che il servizio di backend è a livello di area geografica. Utilizza questo campo per i servizi di backend utilizzati con bilanciatori del carico HTTP(S) esterni a livello di area geografica.
  • --no-enable-logging disabilita la registrazione per tale servizio di backend.

Modificare la frequenza di campionamento di logging

gcloud beta compute backend-services update BACKEND_SERVICE \
 --global | --region=REGION \
 --logging-sample-rate=VALUE

gcloud: modalità classica

Disattivare completamente il logging

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con il bilanciatore del carico HTTP(S) esterno globale (classico).
  • --no-enable-logging disabilita la registrazione per tale servizio di backend.

Modificare la frequenza di campionamento di logging

gcloud compute backend-services update BACKEND_SERVICE \
 --global \
 --logging-sample-rate=VALUE

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con il bilanciatore del carico HTTP(S) esterno globale (classico).
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 significa che non vengono registrate richieste e 1.0 indica che viene registrato il 100% delle richieste. Significativo solo con il parametro --enable-logging. Abilitare il logging, ma impostare la frequenza di campionamento su 0.0 equivale a disattivarlo.

Visualizzazione dei log

Per visualizzare i log, vai a Esplora log:

Vai a Esplora log

I log HTTP(S) vengono indicizzati prima dalla regola di forwarding, quindi dalla mappa URL.

  • Per visualizzare tutti i log, nel primo menu a discesa, seleziona Cloud HTTP Load Balancer > All forwarding rules (Tutte le regole di forwarding).
  • Per visualizzare i log di una regola di forwarding, seleziona il nome di una singola regola di forwarding.
  • Per visualizzare i log di una mappa URL, evidenzia una regola di forwarding e scegli una mappa URL.

I campi del log di tipo booleano vengono generalmente visualizzati solo se hanno il valore true. Se un campo booleano contiene il valore false, il campo viene omesso dal log.

Per i campi del log viene applicata la codifica UTF-8. I caratteri che non sono UTF-8 vengono sostituiti con punti interrogativi.

Per i bilanciatori del carico HTTP(S) esterni globali (classici) e i bilanciatori del carico HTTP(S) esterni globali, puoi esportare le metriche basate su log utilizzando i log delle risorse (resource.type=http_load_balancer). Le metriche create si basano sulla "regola per il bilanciamento del carico HTTP di Google Cloud (metriche basate su log)" (l7_lb_rule), disponibile nelle dashboard di Cloud Monitoring anziché nella risorsa https_lb_rule:

Per i bilanciatori del carico HTTP(S) esterni a livello di area geografica, puoi esportare le metriche basate su log utilizzando i log delle risorse (resource.type=internal_http_lb_rule).

Cosa viene registrato

Le voci di log di bilanciamento del carico HTTP(S) contengono informazioni utili per il monitoraggio e il debug del traffico HTTP(S). Le voci di log contengono i seguenti tipi di informazioni:

  • Informazioni generali come gravità, ID progetto, numero di progetto e timestamp.
  • HttpRequest. Tuttavia, il campo HttpRequest.protocol non viene completato per i log Cloud Logging di HTTP(S) Load Balancing.
  • Un campo statusDetails all'interno di structPayload. Questo campo contiene una stringa che spiega il motivo per cui il bilanciatore del carico ha restituito lo stato HTTP. Le tabelle seguenti contengono ulteriori spiegazioni di queste stringhe di log.
    Il campo statusDetails non è disponibile per i bilanciatori del carico HTTP(S) esterni di un'area geografica.
  • I reindirizzamenti (codice di stato della risposta HTTP 302 trovato) emessi dal bilanciatore del carico non vengono registrati. I reindirizzamenti emessi dalle istanze di backend vengono registrati.

Stato Dettagli - Messaggi di successo HTTP

statusDetails (esito positivo) Significato Codici di risposta associati comuni
byte_range_caching La richiesta HTTP è stata fornita utilizzando la memorizzazione dei byte della gamma di byte di Cloud CDN. È possibile qualsiasi codice di risposta memorizzabile nella cache.
response_from_cache La richiesta HTTP è stata fornita da una cache Cloud CDN. È possibile qualsiasi codice di risposta memorizzabile nella cache.
response_from_cache_validated Il codice di reso è stato impostato da una voce memorizzata nella cache di Cloud CDN, convalidata da un backend. È possibile qualsiasi codice di risposta memorizzabile nella cache.
response_sent_by_backend La richiesta HTTP è stata inviata correttamente al backend e la risposta è stata restituita dal backend. Il codice di risposta HTTP viene impostato dal software in esecuzione sul backend.

Messaggi di errore HTTP statusDetails

statusDetails (errore) Significato Codici di risposta associati comuni
aborted_request_due_to_backend_early_response Una richiesta con il corpo è stata interrotta perché il backend ha inviato una risposta in anteprima con un codice di errore. La risposta è stata inoltrata al client. La richiesta è stata terminata. 4XX o 5XX
backend_connection_closed_after_partial_response_sent La connessione di backend si è chiusa inaspettatamente dopo l'invio di una risposta parziale al client. Il codice di risposta HTTP viene impostato dal software in esecuzione sul backend. Il codice di risposta HTTP 0 (zero) indica che il backend ha inviato intestazioni HTTP incomplete.
backend_connection_closed_before_data_sent_to_client Il backend ha chiuso inaspettatamente la connessione al bilanciatore del carico prima che la risposta fosse inviata al client. Questo può accadere se il bilanciatore del carico invia il traffico a un'altra entità. L'altra entità potrebbe essere un bilanciatore del carico di terze parti con un timeout TCP inferiore al timeout di un carico esterno HTTP(S) di 10 minuti (600 secondi). Il bilanciatore del carico di terze parti potrebbe essere in esecuzione su un'istanza VM. Il problema potrebbe essere risolto impostando manualmente il timeout TCP (keepalive) sul servizio di destinazione su un valore superiore a 600 secondi. 502
backend_early_response_with_non_error_status Il backend ha inviato una risposta non di errore (1XX o 2XX) a una richiesta prima di ricevere l'intero corpo della richiesta. 502
backend_interim_response_not_supported Il backend ha inviato una risposta provvisoria 1XX alla richiesta in un contesto in cui le risposte provvisorie non sono supportate. 502
backend_response_corrupted Il corpo della risposta HTTP inviato dal backend presenta una codifica di trasferimento in blocchi non valida oppure è danneggiato. Qualsiasi codice di risposta possibile a seconda della natura del danneggiamento. Spesso 502.
backend_response_headers_too_long Le intestazioni della risposta HTTP inviate dal backend hanno superato il limite consentito. Per ulteriori informazioni, consulta i limiti relativi alle dimensioni delle intestazioni per il bilanciamento del carico HTTP(S). 502
backend_timeout Timeout del backend durante la generazione di una risposta. 502
banned_by_security_policy La richiesta è stata esclusa da una regola di esclusione basata sulla tariffa di Google Cloud Armor. 429
body_not_allowed Il client ha inviato una richiesta HTTP con un corpo, ma il metodo HTTP utilizzato non consente un corpo. 400
byte_range_caching_aborted Il bilanciatore del carico riceveva una risposta che indicava che la risorsa era memorizzabile nella cache e supportava intervalli di byte. Cloud CDN ha ricevuto una risposta incoerente (ad esempio, una con un codice di risposta diverso da quelli 206 previsti per il contenuto parziale). Questo si è verificato quando si è tentato di eseguire il riempimento della cache utilizzando una richiesta di intervallo di byte. Di conseguenza, il bilanciatore del carico ha interrotto la risposta al client. XX
byte_range_caching_forwarded_backend_response Il bilanciatore del carico riceveva una risposta che indicava che la risorsa era memorizzabile nella cache e supportava intervalli di byte. Cloud CDN ha ricevuto una risposta incoerente (ad esempio, una con un codice di risposta diverso da quelli 206 previsti per il contenuto parziale). Questo si è verificato quando si è tentato di eseguire il riempimento della cache utilizzando una richiesta di intervallo di byte. Il bilanciatore del carico ha quindi inoltrato la risposta incoerente al client. Restituito dal backend: qualsiasi codice di risposta è possibile.
byte_range_caching_retrieval_abandoned Il client ha annullato una richiesta di intervallo di byte o di richiesta di convalida avviata da Cloud CDN. Restituito dal backend: qualsiasi codice di risposta è possibile.
byte_range_caching_retrieval_from_backend_failed_after_partial_response Una richiesta di intervallo di byte o una richiesta di convalida avviata da Cloud CDN ha riscontrato un errore. Fai riferimento alla voce di log Cloud Logging corrispondente alla richiesta avviata da Cloud CDN per lo stato del backend dettagliato. XX
cache_lookup_failed_after_partial_response Il bilanciatore del carico non è riuscito a fornire una risposta completa dalla cache di Cloud CDN a causa di un errore interno. XX
cache_lookup_timeout_after_partial_response Timeout della ricerca nella cache di Cloud CDN perché il client non ha recuperato i contenuti in modo tempestivo. XX
client_disconnected_after_partial_response La connessione al client è stata interrotta dopo che il bilanciatore del carico ha inviato una risposta parziale. Restituito dal backend: qualsiasi codice di risposta è possibile.
client_disconnected_before_any_response La connessione al client è stata interrotta prima che il bilanciatore del carico inviasse una risposta. 0
client_timed_out Google Front End (GFE) ha disattivato la connessione client a causa dello stato di avanzamento della procedura durante il proxy della richiesta o della risposta. 0 o 408
denied_by_security_policy Il bilanciatore del carico ha rifiutato la richiesta a causa di un criterio di sicurezza di Google Cloud Armor. Configurato nel criterio di sicurezza.
error_uncompressing_gzipped_body Si è verificato un errore durante la decompressione di una risposta HTTP compressa. 503
failed_to_connect_to_backend Il bilanciatore del carico non è riuscito a connettersi al backend. Sono inclusi i timeout durante la fase di connessione. 502
failed_to_pick_backend Il bilanciatore del carico non è riuscito a scegliere un backend integro per gestire la richiesta. 502
failed_to_negotiate_alpn Il bilanciatore del carico e il backend non sono riusciti a negoziare un protocollo a livello di applicazione (ad esempio HTTP/2) da utilizzare per comunicare tra loro tramite TLS. 502
headers_too_long Le intestazioni della richiesta superavano il limite massimo consentito. 413
http_version_not_supported Versione HTTP non supportata. Attualmente sono supportati solo HTTP 0.9, 1.0, 1.1 e 2.0. 400
internal_error Errore interno del bilanciatore del carico. Normalmente rappresenta un errore transitorio nell'infrastruttura del bilanciatore del carico. Riprova a eseguire la query. XXXX
invalid_external_origin_endpoint La configurazione per il backend esterno non è valida. Esamina la configurazione del NEG di Internet e assicurati che specifichi un indirizzo e una porta FQDN/IP validi. XXXX
invalid_request_headers Le intestazioni della richiesta HTTP di un client non sono valide. 400
invalid_http2_client_header_format Le intestazioni HTTP/2 di un client non sono valide. 400
multiple_iap_policies Non è possibile combinare più criteri Identity-Aware Proxy (IAP). Se hai un criterio IAP collegato a un servizio di backend e un altro criterio associato a un oggetto serverless, rimuovi uno dei criteri e riprova. Gli oggetti serverless includono App Engine, Cloud Run e Cloud Functions. 500
malformed_chunked_body Il corpo della richiesta è stato codificato in modo errato. 411
request_loop_detected Il bilanciatore del carico ha rilevato un loop di richiesta. Questo loop potrebbe essere causato da un'errata configurazione in cui il backend ha inoltrato nuovamente la richiesta al bilanciatore del carico. 502
required_body_but_no_content_length La richiesta HTTP richiede un corpo, ma le intestazioni della richiesta non includevano una lunghezza dei contenuti o un'intestazione suddivisa in blocchi di trasferimento. 400 o 403
secure_url_rejected Una richiesta con un URL https:// è stata ricevuta tramite una connessione HTTP/1.1 di testo non crittografato. 400
ssl_san_verification_failed Il bilanciatore del carico non è riuscito a trovare un SAN (Subject Alternative Name) nel certificato SSL presentato dal backend che corrisponde al nome host configurato. 502
ssl_certificate_chain_verification_failed Il certificato SSL presentato dal backend non ha superato la verifica. 502
throttled_by_security_policy La richiesta è stata bloccata da una regola di limitazione di Google Cloud Armor. 429
unsupported_method Il client ha fornito un metodo di richiesta HTTP non supportato. 400
upgrade_header_rejected La richiesta HTTP del client conteneva l'intestazione Upgrade ed è stata rifiutata. 400
websocket_closed La connessione WebSocket è stata chiusa. 101
websocket_handshake_failed L'handshake WebSocket non è riuscito. Qualsiasi codice di risposta possibile a seconda della natura dell'errore di handshake.
request_body_too_large Il corpo della richiesta HTTP ha superato il numero massimo supportato dal backend. Non applicabile ai backend VM. 413
handled_by_identity_aware_proxy Questa risposta è stata generata da Identity-Aware Proxy durante la verifica dell'identità del client prima di consentire l'accesso. 200, 302, 400, 401, 403, 500, 502
serverless_neg_routing_failed La richiesta NEG serverless non può essere inviata. Questo errore può verificarsi quando non è possibile raggiungere l'area geografica specificata nel NEG o quando non è possibile trovare il nome della risorsa (ad esempio, il nome Cloud Functions). 404.502

Logging per bucket di backend

Il logging viene abilitato automaticamente per i bilanciatori del carico con bucket di backend. Non puoi modificare o disabilitare il logging per i bucket di backend.

Logging per Google Cloud Armor

La tabella per i messaggi di errore HTTP statusDetail contiene alcuni messaggi che si applicano a Google Cloud Armor. Per ulteriori informazioni sui log di Google Cloud Armor, consulta Utilizzo del logging delle richieste.

Interazione con i log

Puoi interagire con i log del bilanciatore del carico HTTP(S) esterno utilizzando l'API Cloud Logging. L'API Logging consente di filtrare in modo interattivo i log in cui sono impostati campi specifici. Esporta i log corrispondenti in Cloud Logging, Cloud Storage, BigQuery o Pub/Sub. Per maggiori informazioni sull'API Logging, consulta la panoramica dell'API Cloud Logging.

Monitoring

Il bilanciamento del carico HTTP(S) esporta i dati di monitoraggio in Cloud Monitoring.

Le metriche di monitoraggio possono essere utilizzate per i seguenti scopi:

  • Valuta la configurazione, l'utilizzo e le prestazioni di un bilanciatore del carico
  • Risolvere i problemi
  • Migliora l'utilizzo delle risorse e l'esperienza utente

Oltre alle dashboard predefinite in Cloud Monitoring, puoi creare dashboard personalizzate, configurare avvisi ed eseguire query sulle metriche tramite l'API Cloud Monitoring.

Visualizzazione delle dashboard predefinite di Cloud Monitoring

Cloud Monitoring offre dashboard predefinite per il monitoraggio dei bilanciatori del carico. Le dashboard vengono completate automaticamente da Cloud Monitoring.

Per accedere alle dashboard predefinite, procedi nel seguente modo:

  1. Vai a Monitoring in Google Cloud Console.

    Vai a Monitoring

  2. Nel pannello di navigazione di Monitoring, fai clic su Dashboard.

  3. In Categorie, fai clic su GCP.

    • Per visualizzare un elenco delle dashboard per tutti i bilanciatori del carico Google Cloud, seleziona la 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 suo nome.

    • Per visualizzare le dashboard predefinite solo per i bilanciatori del carico HTTP(S) esterni, seleziona la dashboard denominata Bilanciatori del carico HTTP(S) esterno. Questa pagina mostra una dashboard che mostra i rapporti di risposta 5XX e la latenza di backend per tutti i bilanciatori del carico HTTP(S) esterni nel progetto. Fornisce anche un elenco di dashboard per tutti i bilanciatori del carico HTTP(S) esterni nel tuo progetto.

      Puoi fare clic per ogni dashboard del bilanciatore del carico. Ogni dashboard include quanto segue:

      • Grafici precompilati che visualizzano l'analisi per le risposte in base alle classi di codice di risposta (5XX, 4XX, 3XX, 2XX)
      • Latenza totale
      • Latenza di backend
      • RTT front-end
      • Conteggio delle richieste
      • Un link ai log del bilanciatore del carico
  4. Per visualizzare le dashboard relative ai servizi di terze parti, torna alla pagina Dashboard. In Categorie, fai clic su Altro.

    • Per visualizzare la dashboard di un servizio di terze parti specifico, individualo nell'elenco e fai clic sul suo nome.

Definizione dei criteri di avviso

Puoi creare criteri di avviso per monitorare i valori delle metriche e per ricevere notifiche quando tali metriche violano una condizione.

  1. In Google Cloud Console, vai alla pagina Monitoraggio.

    Vai a Monitoring

  2. Nel riquadro di navigazione di Monitoring, seleziona Avvisi.
  3. Se non hai creato canali per le notifiche e se vuoi ricevere una notifica, fai clic su Modifica canali di notifica e aggiungi i canali. Torna alla pagina Avvisi dopo aver aggiunto i canali.
  4. Nella pagina Avvisi, seleziona Crea criterio.
  5. Per selezionare la metrica, espandi il menu Seleziona una metrica, quindi procedi nel seguente modo:
    1. Per limitare il menu alle voci pertinenti, inserisci Google Cloud HTTP/S Load Balancing nella barra dei filtri. Se dopo aver filtrato il menu non viene visualizzato alcun risultato, disattiva l'opzione Mostra solo le risorse attive e le metriche.
    2. In Tipo di risorsa, seleziona Bilanciamento del carico HTTP/S di Google Cloud.
    3. Seleziona una Categoria della metrica e una Metrica, quindi seleziona Applica.
  6. Tocca Avanti.
  7. Le impostazioni nella pagina Configura trigger di avviso determinano quando viene attivato l'avviso. Seleziona un tipo di condizione e, se necessario, specifica una soglia. Per scoprire di più, consulta l'articolo Trigger della condizione.
  8. Tocca Avanti.
  9. (Facoltativo) Per aggiungere notifiche al criterio di avviso, fai clic su Canali di notifica. Nella finestra di dialogo, seleziona uno o più canali di notifica dal menu e poi fai clic su OK.
  10. (Facoltativo) Aggiorna la durata della chiusura automatica degli incidenti. Questo campo determina quando Monitoring chiude gli incidenti in assenza di dati relativi alle metriche.
  11. (Facoltativo) Fai clic su Documentazione e aggiungi le informazioni che vuoi includere in un messaggio di notifica.
  12. Fai clic su Nome avviso e inserisci un nome per il criterio di avviso.
  13. Fai clic su Crea criterio.
Per ulteriori informazioni, vedi Criteri di avviso.

Definizione delle dashboard personalizzate di Cloud Monitoring

Puoi creare dashboard personalizzate di Cloud Monitoring tramite le metriche di bilanciamento del carico HTTP(S):

  1. Vai a Monitoring in Google Cloud Console.
    Vai a Monitoring
  2. Seleziona Dashboard.
  3. Fai clic su Aggiungi grafico.
  4. Dai un titolo al grafico.
  5. Seleziona metriche e filtri. Per le metriche, il tipo di risorsa è bilanciatore del carico HTTP Cloud.
  6. Fai clic su Salva.

Frequenza e fidelizzazione dei rapporti sulle metriche

Le metriche per i bilanciatori del carico HTTP(S) esterni vengono esportate in Cloud Monitoring in batch di granularità di 1 minuto. I dati di monitoraggio vengono conservati per sei (6) settimane. La dashboard fornisce analisi dei dati con intervalli predefiniti pari a 1 ora (un'ora), 6 ore (sei ore), 1 giorno (un giorno), 1 giorno (una settimana) e 6 ore (6 settimane). Puoi richiedere manualmente l'analisi a qualsiasi intervallo da 6 W a 1 minuto.

Monitoraggio delle metriche

Le seguenti metriche per i bilanciatori del carico HTTP(S) esterni sono riportate in Cloud Monitoring.

Metrica Nome Descrizione
Conteggio delle richieste https/request_count Il numero di richieste gestite dal bilanciatore del carico HTTP(S) esterno
Conteggio byte richiesta https/request_bytes_count Il numero di byte inviati come richieste dai client al bilanciatore del carico HTTP(S) esterno
Conteggio byte di risposta https/response_bytes_count Il numero di byte inviati come risposte dal bilanciatore del carico HTTP(S) esterno ai client
Latenze totali https/total_latencies Una distribuzione della latenza. La latenza viene misurata dal momento in cui il GFE riceve il primo byte della richiesta fino a quando non riceve un ACK dal GFE dal client richiedente per l'ultimo byte di risposta. Le latenze totali vengono misurate in base alla richiesta/risposta. Le pause tra le richieste sulla stessa connessione tramite Connection: keep-alive non influiscono sulla misurazione. In genere questa misurazione è ridotta al 95° percentile nelle viste Cloud Monitoring.

Esempio: un bilanciatore del carico ha 1 richiesta al secondo dal Regno Unito, tutte con una latenza di 100 ms, e 9 richieste al secondo dagli Stati Uniti, tutte con una latenza di 50 ms. In un determinato minuto sono state effettuate 60 richieste dal Regno Unito e 540 richieste dagli Stati Uniti. Il monitoraggio delle metriche conserva la distribuzione su tutte le dimensioni. Puoi richiedere informazioni quali:

  • latenza complessiva mediana (300/600) - 50 ms
  • Latenza mediana nel Regno Unito (30/60) - 100 ms
  • Latenza complessiva del 95° percentile (570/600) - 100 ms
RTT frontend(*) https/frontend_tcp_rtt Una distribuzione del tempo di round trip (RTT) senza interruzioni misurata per ogni connessione tra il client e il GFE (misurata dallo stack TCP GFE's). L'algoritmo RTT fluido è un algoritmo che gestisce le varianti e le anomalie che potrebbero verificarsi nelle misurazioni RTT.
Latenze di backend(*) https/backend_latencies Una distribuzione della latenza misurata da quando il GFE della prima richiesta è stato inviato dal backend al backend, fino a quando il GFE ha ricevuto dal backend l'ultimo byte della risposta.
Frazione di classe del codice di risposta Frazione delle risposte del bilanciatore del carico HTTP(S) esterno totale in ogni classe di codice di risposta (2XX, 4XX, ...). In Cloud Monitoring, questo valore è disponibile solo sulle dashboard predefinite. Non è disponibile per le dashboard personalizzate. Puoi utilizzare l'API per impostare gli avvisi.
Conteggio richieste di backend https/backend_request_count Il numero di richieste inviate dal bilanciatore del carico HTTP(S) esterno ai backend.
Conteggio byte richiesta di backend https/backend_request_bytes_count Il numero di byte inviati come richieste dal bilanciatore del carico HTTP(S) esterno ai backend.
Conteggio byte risposta backend https/backend_response_bytes_count Il numero di byte inviati come risposte dai backend al bilanciatore del carico HTTP(S) esterno.

(*) Non è garantito che la somma delle latenze RTT e backend si verifichi inferiore o uguale alle latenze totali. Questo perché, anche se implementiamo RTT sul socket dal GFE al client nel momento in cui la risposta HTTP è stata compromessa, ci basiamo sui report del kernel per alcune di queste misurazioni e non possiamo garantire che il kernel avrà una misurazione RTT per la specifica risposta HTTP. Il risultato finale è un valore RTT fluido che è interessato anche da risposte HTTP precedenti, SYN/ACK e handshake SSL che non influenzano i tempi effettivi delle richieste HTTP attuali.

Filtrare le dimensioni per le metriche

Le metriche vengono aggregate per ogni bilanciatore del carico HTTP(S) esterno. Puoi filtrare le metriche aggregate in base alle seguenti dimensioni(*).

Proprietà Descrizione
backend_scope L'ambito Google Cloud (area geografica o zona) del gruppo di istanze di servizio di backend che ha gestito la connessione.

Se non è disponibile alcun gruppo di istanze o se la richiesta è stata gestita da un'altra entità, viene visualizzato uno dei seguenti valori anziché l'area geografica o la zona del gruppo di istanze di servizio di backend.

  • FRONTEND_5XX: si è verificato un errore interno prima che il GFE possa selezionare un backend. Il GFE ha restituito 5XX al client.
  • INVALID_BACKEND - Il GFE non riesce a trovare un backend integro a cui assegnare la richiesta, pertanto ha restituito una risposta 5XX al richiedente.
  • NO_BACKEND_SELECTED: si è verificato un errore o un'altra interruzione prima che fosse possibile selezionare un backend.
  • SERVED_FROM_BACKEND_BUCKET: la richiesta è stata gestita da un bucket di backend.
  • SERVED_FROM_CACHE: una richiesta di cache GFE ha gestito la richiesta, quindi non è stato assegnato alcun backend.
  • MULTIPLE_BACKENDS - La richiesta è stata gestita da potenzialmente più backend. La cache ha inviato una o più richieste dell'intervallo di byte a un backend diverso. Utilizza l'analisi BACKEND_SCOPE per visualizzare ciascuna richiesta da bilanciatore del carico a backend.

Quando viene scelta questa suddivisione, i grafici mostrano le metriche di backend (bilanciatore del carico verso backend) e non le metriche frontend (bilanciatore da client a caricamento).
backend_scope = "backend_zone" Se il gruppo di istanze era un gruppo di istanze a livello di zona, la zona Google Cloud del gruppo di istanze che ha gestito la richiesta del client. (Esempi: us-central1-a, europe-west1-b, asia-east1-c)

Quando si sceglie questa suddivisione, i grafici mostrano le metriche di backend (bilanciatore di carico su backend), non le metriche di frontend (bilanciatore da client a caricamento).
backend_scope = "backend_region" Se il gruppo di istanze era un gruppo di istanze a livello di area geografica, l'area geografica di Google Cloud del gruppo di istanze che ha gestito la richiesta del client. (Esempi: us-central1, europe-west1, asia-east1)

Quando si sceglie questa suddivisione, i grafici mostrano le metriche di backend (bilanciatore di carico su backend), non le metriche di frontend (bilanciatore da client a caricamento).
proxy_continente Continente del GFE HTTP(S) che ha terminato la connessione HTTP(S). (Esempi: America, Europe, Asia)
backend_type = "INSTANCE GROUP" Il nome del gruppo di istanze che ha soddisfatto la richiesta del client.

Se non è disponibile alcun gruppo di istanze o se la richiesta è stata gestita da un'altra entità, viene visualizzato uno dei seguenti valori anziché un gruppo di istanze.

  • FRONTEND_5XX: si è verificato un errore interno prima che il GFE possa selezionare un backend. Il GFE ha restituito 5XX al client.
  • INVALID_BACKEND - Il GFE non riesce a trovare un backend integro a cui assegnare la richiesta, pertanto ha restituito una risposta 5XX al richiedente.
  • NO_BACKEND_SELECTED: si è verificato un errore o un'altra interruzione prima che fosse possibile selezionare un backend.
  • SERVED_FROM_BACKEND_BUCKET: la richiesta è stata gestita da un bucket di backend.
  • SERVED_FROM_CACHE - Cloud CDN ha gestito la richiesta, pertanto non è stato assegnato alcun backend.
  • MULTIPLE_BACKENDS - Più backend soddisfano la richiesta.

Quando viene scelta questa suddivisione, i grafici mostrano le metriche di backend (bilanciatore del carico verso backend) e non le metriche frontend (bilanciatore da client a caricamento).
backend_target_type = "BACKEND_SERVICE" Il nome del servizio di backend che ha gestito la richiesta.
regola_URL_percorso_con_corrispondenza La regola del percorso della mappa degli URL che corrisponde al prefisso della richiesta HTTP(S) (fino a 50 caratteri).
forwarding_rule_name [nome_regola_di_inoltro] Il nome della regola di forwarding utilizzata dal client per inviare la richiesta.

(*) Al momento, la metrica "Classe classe codice di risposta" è disponibile solo per l'intero bilanciatore del carico, senza ulteriori suddivisioni disponibili.

Passaggi successivi