Log e metriche per i servizi di backend

Questo documento mostra come configurare e utilizzare Cloud Logging e Cloud Monitoring con i bilanciatori del carico delle applicazioni classici, i bilanciatori del carico delle applicazioni esterni globali e Cloud CDN.

Logging

Puoi abilitare, disabilitare e visualizzare i log per un servizio di backend di un bilanciatore del carico delle applicazioni esterno. Per i bilanciatori del carico delle applicazioni esterni con bucket di backend, il logging viene abilitato automaticamente e non può essere disabilitato.

Puoi abilitare o disabilitare 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 che si applichi ai bilanciatori del carico delle applicazioni esterni. Per informazioni su come verificare che i log Cloud HTTP Load Balancer siano consentiti, consulta Filtri di esclusione.

Campionamento e raccolta dei log

Le richieste (e le risposte corrispondenti) gestite dalle istanze di macchine virtuali (VM) del backend del bilanciatore del carico vengono campionate. Queste richieste campionate vengono quindi elaborate per generare i log. Puoi controllare la frazione delle richieste emesse come voci di log in base al parametro logConfig.sampleRate. Quando logConfig.sampleRate è 1.0 (100%), i log vengono generati per tutte le richieste e scritti in Cloud Logging.

Campi facoltativi

I record di log contengono campi obbligatori e facoltativi. La sezione Informazioni registrate nei log elenca i campi facoltativi e quelli obbligatori. Tutti i campi obbligatori sono sempre inclusi. Puoi personalizzare i campi facoltativi che decidi di mantenere.

  • Se selezioni Includi tutti i campi facoltativi, tutti i campi facoltativi nel formato del record di log vengono inclusi nei log. Quando vengono aggiunti nuovi campi facoltativi al formato del record, i log includono automaticamente i nuovi campi.

  • Se selezioni Escludi tutti i campi facoltativi, tutti i campi facoltativi vengono omessi.

  • Se selezioni Personalizzato, puoi specificare i campi facoltativi da includere, ad esempio tls.protocol,tls.cipher,orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Per informazioni sulla personalizzazione dei campi facoltativi, consulta Abilitazione del logging su un nuovo servizio di backend.

Abilitazione del logging su un nuovo servizio di backend

Console

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a 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. Nella sezione Logging, seleziona la casella di controllo Abilita il logging.

  8. Imposta una frazione per la frequenza di campionamento. Puoi impostare un numero compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Il valore predefinito è 1.0.

  9. (Facoltativo) Per includere tutti i campi facoltativi nei log, nella sezione Campi facoltativi, fai clic su Includi tutti i campi facoltativi.

  10. Per completare la modifica del servizio di backend, fai clic su Aggiorna.

  11. Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.

gcloud

Crea un servizio di backend e abilita il logging utilizzando il comando gcloud compute backend-services create.

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

Il comando gcloud compute backend-services create supporta i seguenti campi:

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con i bilanciatori del carico delle applicazioni esterni globali.
  • --enable-logging abilita il logging per il servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Questo campo è significativo solo con il parametro --enable-logging. Abilitare il logging impostando però la frequenza di campionamento su 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.
  • --logging-optional consente di specificare i campi facoltativi che vuoi includere nei log. Questi campi sono supportati solo con i bilanciatori del carico delle applicazioni esterni globali.

    • INCLUDE_ALL_OPTIONAL per includere tutti i campi facoltativi.

    • EXCLUDE_ALL_OPTIONAL (valore predefinito) per escludere tutti i campi facoltativi.

    • CUSTOM per includere un elenco personalizzato di campi facoltativi che specifichi in OPTIONAL_FIELDS.

  • --logging-optional-fields consente di specificare un elenco separato da virgole di campi facoltativi da includere nei log.

    Ad esempio, tls.protocol,tls.cipher può essere impostato solo se LOGGING_OPTIONAL_MODE è impostato su CUSTOM. Se utilizzi metriche personalizzate e vuoi registrare gli elementi del report sul carico ORCA, imposta LOGGING_OPTIONAL_MODE su CUSTOM e specifica gli elementi da registrare nel campo OPTIONAL_FIELDS. Ad esempio, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Abilitazione del logging su un servizio di backend esistente

Console

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a 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 servizio di backend.

  6. Nella sezione Logging, seleziona la casella di controllo Abilita il logging.

  7. Imposta la probabilità di campionamento nel campo Frequenza di campionamento. Puoi impostare un numero compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Il valore predefinito è 1.0.

  8. (Facoltativo) Per includere tutti i campi facoltativi nei log, nella sezione Campi facoltativi, fai clic su Includi tutti i campi facoltativi.

  9. Per completare la modifica del servizio di backend, fai clic su Aggiorna.

  10. Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.

gcloud

Abilita il logging su un servizio di backend esistente con il comando gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

dove

  • --global indica che il servizio di backend è globale. Utilizza questo campo per i servizi di backend utilizzati con i bilanciatori del carico delle applicazioni esterni globali.
  • --enable-logging abilita il logging per il servizio di backend.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Significativo solo con il parametro --enable-logging. Abilitare il logging impostando però la frequenza di campionamento su 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.
  • --logging-optional consente di specificare i campi facoltativi che vuoi includere nei log. Questi campi sono supportati solo con i bilanciatori del carico delle applicazioni esterni globali.

    • INCLUDE_ALL_OPTIONAL per includere tutti i campi facoltativi.

    • EXCLUDE_ALL_OPTIONAL (valore predefinito) per escludere tutti i campi facoltativi.

    • CUSTOM per includere un elenco personalizzato di campi facoltativi che specifichi in OPTIONAL_FIELDS.

  • --logging-optional-fields consente di specificare un elenco separato da virgole di campi facoltativi da includere nei log.

    Ad esempio, tls.protocol,tls.cipher. Può essere impostato solo se LOGGING_OPTIONAL_MODE è impostato su CUSTOM. Se utilizzi metriche personalizzate e vuoi registrare gli elementi del report sul carico ORCA, imposta LOGGING_OPTIONAL_MODE su CUSTOM e specifica gli elementi da registrare nel campo OPTIONAL_FIELDS. Ad esempio, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Disabilitazione o modifica del logging su un servizio di backend esistente

Console

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a 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 servizio di backend.

  6. Per disabilitare completamente il logging, nella sezione Logging, deseleziona la casella di controllo Abilita il logging.

  7. Se lasci abilitato il logging, puoi impostare una frazione diversa per la frequenza di campionamento. Puoi impostare un numero compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Il valore predefinito è 1.0. Ad esempio, 0.2 significa che il 20% delle richieste campionate genera log.

  8. Per completare la modifica del servizio di backend, fai clic su Aggiorna.

  9. Per completare la modifica del bilanciatore del carico, fai clic su Aggiorna.

gcloud: modalità globale

Disabilita il logging su un servizio di backend con il comando gcloud compute backend-services update.

Disabilitazione completa del 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 i bilanciatori del carico delle applicazioni esterni globali.
  • --no-enable-logging disabilita il logging per il servizio di backend.

Abilitazione dei campi facoltativi del logging su un servizio di backend esistente

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

dove

  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Significativo solo con il parametro --enable-logging. Abilitare il logging impostando però la frequenza di campionamento su 0.0 equivale a disabilitare il logging. Il valore predefinito è 1.0.
  • --logging-optional consente di specificare i campi facoltativi che vuoi includere nei log:

    • INCLUDE_ALL_OPTIONAL per includere tutti i campi facoltativi.

    • EXCLUDE_ALL_OPTIONAL (valore predefinito) per escludere tutti i campi facoltativi.

    • CUSTOM per includere un elenco personalizzato di campi facoltativi che specifichi in OPTIONAL_FIELDS.

  • --logging-optional-fields consente di specificare un elenco separato da virgole di campi facoltativi da includere nei log.

    Ad esempio, tls.protocol,tls.cipher può essere impostato solo se LOGGING_OPTIONAL_MODE è impostato su CUSTOM. Se utilizzi metriche personalizzate e vuoi registrare gli elementi del report sul carico ORCA, imposta LOGGING_OPTIONAL_MODE su CUSTOM e specifica gli elementi da registrare nel campo OPTIONAL_FIELDS. Ad esempio, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Aggiornamento della modalità di logging facoltativa da CUSTOM ad altre

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

dove

  • --logging-optional consente di specificare i campi facoltativi che vuoi includere nei log:

    • INCLUDE_ALL_OPTIONAL per includere tutti i campi facoltativi.

    • EXCLUDE_ALL_OPTIONAL (valore predefinito) per escludere tutti i campi facoltativi.

  • --logging-optional-fields deve essere configurato in modo esplicito come mostrato per cancellare eventuali campi CUSTOM esistenti. L'API non consente di combinare una modalità non CUSTOM con campi CUSTOM.

Modifica della frequenza di campionamento del logging

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

gcloud: modalità classica

Disabilita il logging su un servizio di backend con il comando gcloud compute backend-services update.

Disabilitazione completa del 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 un bilanciatore del carico delle applicazioni classico.
  • --no-enable-logging disabilita il logging per il servizio di backend.

Modifica della frequenza di campionamento del 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 un bilanciatore del carico delle applicazioni classico.
  • --logging-sample-rate consente di specificare un valore compreso tra 0.0 e 1.0, dove 0.0 indica che nessuna richiesta viene registrata e 1.0 indica che il 100% delle richieste viene registrato. Significativo solo con il parametro --enable-logging. Abilitare il logging impostando però la frequenza di campionamento su 0.0 equivale a disabilitare il logging.

Visualizza i log


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud , fai clic su Procedura guidata:

Procedura guidata


I log HTTP(S) vengono indicizzati prima in base a una regola di forwarding, poi in base a una mappa URL.

Per visualizzare i log, vai alla pagina Esplora log:

Vai a Esplora log

  • Per visualizzare tutti i log, nel menu del filtro Risorsa, seleziona Bilanciatore del carico HTTP Cloud > Tutte le regole di forwarding.

  • Per visualizzare i log per una regola di forwarding, seleziona il nome di una singola regola di forwarding.

  • Per visualizzare i log per una mappa URL, seleziona una regola di forwarding e poi una mappa URL.

I campi dei log di tipo booleano in genere vengono visualizzati solo se hanno un valore uguale a true. Se un campo booleano ha un valore uguale a false, viene omesso dal log.

La codifica UTF-8 è applicata in modo forzato per i campi di log. I caratteri non UTF-8 vengono sostituiti con punti interrogativi. Per i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni 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 risorsa regola del bilanciatore del carico delle applicazioni (metriche basate su log) (l7_lb_rule), disponibile nelle dashboard di Cloud Monitoring anziché nella risorsa https_lb_rule.

Informazioni registrate nei log

Le voci di log del bilanciatore del carico delle applicazioni esterno contengono informazioni utili per monitorare ed eseguire il debug del traffico HTTP(S). I record di log contengono campi obbligatori, che sono i campi predefiniti di ogni record di log.

I record di log contengono campi facoltativi che aggiungono ulteriori informazioni sul traffico HTTP(S). Possono essere omessi per risparmiare sui costi di archiviazione.

Alcuni campi di log sono in formato multi-campo, con più di un dato in un determinato campo. Ad esempio, il campo tls è in formato TlsInfo, che contiene il campo earlyDataRequest. Questi campi multi-campo sono descritti nella seguente tabella dei formati del record.

Campo Formato campo Tipo di campo: obbligatorio o facoltativo Descrizione
severity
insertID
logName
LogEntry Obbligatorio I campi generali come descritti in una voce di log.
timestamp stringa (formato Timestamp) Facoltativo L'ora in cui il GFE di primo livello riceve la richiesta.
httpRequest HttpRequest Obbligatorio Un protocollo comune per il logging delle richieste HTTP.

HttpRequest.protocol non è compilato per resource.type="http_load_balancer"

.
resource MonitoredResource Obbligatorio

MonitoredResource è il tipo di risorsa associato a una voce di log.

MonitoredResourceDescriptor descrive lo schema di un oggetto MonitoredResource utilizzando un nome di tipo e un insieme di etichette. Per saperne di più, consulta Etichette delle risorse.

jsonPayload oggetto (formato Struct) Obbligatorio Il payload della voce di log espresso come oggetto JSON. L'oggetto JSON contiene i seguenti campi:
  • statusDetails
  • backendTargetProjectNumber
  • overrideResponseCode
  • errorService
  • errorBackendStatusDetails
  • authzPolicyInfo
  • loadBalancingScheme
  • tls
  • orca_load_report
stringa Obbligatorio Il campo statusDetails contiene una stringa che spiega perché il bilanciatore del carico ha restituito il codice di stato HTTP. Per saperne di più su queste stringhe di log, consulta Messaggi di operazione riuscita HTTP statusDetails e Messaggi di errore HTTP statusDetails.
stringa Obbligatorio Il campo backendTargetProjectNumber contiene il numero del progetto in cui è stata creata la destinazione di backend, ovvero il servizio di backend o il bucket di backend. Questo campo è nel formato: "projects/PROJECT_NUMBER". Queste informazioni sono disponibili solo per i bilanciatori del carico delle applicazioni esterni globali che utilizzano risposte di errore personalizzate.
integer Obbligatorio overrideResponseCode contiene il codice di risposta di override applicato alla risposta inviata al client. Queste informazioni sono disponibili solo per i bilanciatori del carico delle applicazioni esterni globali che utilizzano risposte di errore personalizzate.
stringa Obbligatorio Il campo errorService contiene il servizio di backend che ha fornito la risposta di errore personalizzata. Queste informazioni sono disponibili solo per i bilanciatori del carico delle applicazioni esterni globali che utilizzano risposte di errore personalizzate.
stringa Obbligatorio Il campo errorBackendStatusDetails contiene il valore di statusDetails della risposta finale restituita al client. Queste informazioni sono disponibili solo per i bilanciatori del carico delle applicazioni esterni globali che utilizzano risposte di errore personalizzate.
AuthzPolicyInfo Obbligatorio Il campo authzPolicyInfo contiene le informazioni sul risultato delle policy di autorizzazione. Queste informazioni sono disponibili solo per i bilanciatori del carico delle applicazioni esterni globali con policy di autorizzazione abilitate. Per saperne di più, consulta Informazioni registrate per le policy di autorizzazione.
stringa Facoltativo Il campo loadBalancingScheme viene compilato solo se utilizzi la funzionalità di migrazione del bilanciatore del carico delle applicazioni classico. Questo campo contiene una stringa che descrive lo schema di bilanciamento del carico utilizzato per instradare la richiesta. I valori possibili sono EXTERNAL o EXTERNAL_MANAGED.
TlsInfo Obbligatorio

Il campo tls contiene il campo TlsInfo che specifica i metadati TLS per la connessione tra il client e il bilanciatore del carico. Questo campo è disponibile solo se il client utilizza la crittografia TLS/SSL.

Utilizza il parametro --logging-optional-fields per specificare gli elementi da registrare:

  • Facoltativo: tls.protocol
  • Facoltativo: tls.cipher
  • Obbligatorio: tls.earlyDataRequest

Non puoi impostare --logging-optional-fields su tls per specificare tutti gli elementi.

OrcaLoadReport Facoltativo

Il campo orca_load_report contiene alcuni o tutti gli elementi del report sul carico ORCA restituito dal backend. Questo campo è presente solo se il backend restituisce un report sul carico ORCA e se hai configurato il bilanciatore del carico per il logging del report sul carico ORCA.

Utilizza il parametro --logging-optional-fields per specificare quali dei seguenti elementi del report sul carico ORCA devono essere registrati:

  • orca_load_report.cpu_utilization
  • orca_load_report.mem_utilization
  • orca_load_report.request_cost
  • orca_load_report.utilization
  • orca_load_report.rps_fractional
  • orca_load_report.eps
  • orca_load_report.named_metrics
  • orca_load_report.application_utilization

Puoi anche impostare --logging-optional-fields su orca_load_report per specificare che tutti gli elementi devono essere registrati.

Formato del campo TlsInfo

Campo Formato campo Tipo di campo: obbligatorio o facoltativo Descrizione
protocol stringa Facoltativo Protocollo TLS utilizzato dai client per stabilire una connessione con il bilanciatore del carico. I valori possibili sono TLSv1, TLSv1.1, TLSv1.2, TLSv1.3, o QUIC. Questo valore è impostato su NULL se il client non utilizza la crittografia TLS/SSL.
cipher stringa Facoltativo Crittografia TLS utilizzata dai client per stabilire una connessione con il bilanciatore del carico. Questo valore è impostato su NULL se il client non utilizza HTTP(S) o la crittografia TLS/SSL.
earlyDataRequest booleano Obbligatorio La richiesta include Early Data nel TLS handshake.

Etichette risorse

La tabella seguente elenca le etichette delle risorse per resource.type="http_load_balancer".

Campo Tipo Descrizione
backend_service_name stringa Il nome del servizio di backend.
forwarding_rule_name stringa Il nome dell'oggetto regola di forwarding.
project_id stringa L'identificatore del progetto Google Cloud associato a questa risorsa.
target_proxy_name stringa Il nome dell'oggetto proxy di destinazione a cui fa riferimento la regola di forwarding.
url_map_name stringa Il nome dell'oggetto mappa URL configurato per selezionare un servizio di backend.
zone stringa La zona in cui è in esecuzione il bilanciatore del carico. La zona è global.

Messaggi di operazione riuscita HTTP statusDetails

statusDetails (operazione riuscita) Significato Codici di risposta aggiuntivi comuni
byte_range_caching La richiesta HTTP è stata gestita utilizzando la memorizzazione nella cache degli intervalli di byte di Cloud CDN. È possibile qualsiasi codice di risposta memorizzabile nella cache.
response_from_cache La richiesta HTTP è stata gestita da una cache Cloud CDN. È possibile qualsiasi codice di risposta memorizzabile nella cache.
response_from_cache_validated Il codice restituito è stato impostato da una voce memorizzata nella cache di Cloud CDN che è stata 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 è impostato dal software in esecuzione sul backend.

Messaggi di errore HTTP statusDetails

statusDetails (errore) Significato Codici di stato aggiuntivi comuni
aborted_request_due_to_backend_early_response Una richiesta con corpo è stata interrotta perché il backend ha inviato una risposta anticipata con un codice di stato. La risposta è stata inoltrata al client. La richiesta è stata terminata. 4XX o 5XX
backend_connection_closed_after_partial_response_sent La connessione al backend è stata chiusa in modo imprevisto dopo l'invio di una risposta parziale al client.

Il codice di stato HTTP viene impostato dal software in esecuzione sul backend. Il codice di stato HTTP 0 (zero) indica che il backend ha inviato intestazioni HTTP incomplete.

Il codice di stato HTTP è 101 se la connessione HTTP(S) è stata aggiornata a una connessione WebSocket.

backend_connection_closed_before_data_sent_to_client Il backend ha chiuso inaspettatamente la connessione al bilanciatore del carico prima che la risposta venisse inviata tramite proxy al client.

502, 503

Il codice di stato HTTP è 101 se la connessione HTTP(S) è stata aggiornata a una connessione WebSocket.

backend_early_response_with_non_error_status Il backend ha inviato un codice di stato non di errore (1XX o 2XX) a una richiesta prima di ricevere l'intero corpo della richiesta. 502, 503
backend_interim_response_not_supported Il backend ha inviato un codice di stato provvisorio 1XX alla richiesta in un contesto in cui le risposte provvisorie non sono supportate.

502, 503

backend_response_corrupted Il corpo della risposta HTTP inviato dal backend ha una codifica di trasferimento in chunk non valida o è danneggiato. Qualsiasi codice di stato possibile a seconda della natura del danneggiamento. Spesso 502, 503.
backend_response_headers_too_long Le intestazioni della risposta HTTP inviate dal backend hanno superato il limite consentito. Per saperne di più, consulta la sezione Dimensioni dell'intestazione per i bilanciatori del carico delle applicazioni esterni. 502, 503
backend_timeout

Il backend ha raggiunto il timeout durante la generazione di una risposta.

Per una connessione websocket:

  • Per il bilanciatore del carico delle applicazioni esterno globale, viene generato un codice di stato quando il GFE chiude la connessione WebSocket in stato di inattività dopo la scadenza del timeout del servizio di backend.
  • Per il bilanciatore del carico delle applicazioni classico, viene generato un codice di stato quando il GFE chiude la connessione websocket, in stato inattivo o attivo, dopo la scadenza del timeout del servizio di backend.

502, 503

Il codice di stato HTTP è 101 se la connessione HTTP(S) è stata aggiornata a una connessione WebSocket.

banned_by_security_policy La richiesta è stata bloccata da una regola di blocco basato sulla frequenza di 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 ha ricevuto in precedenza una risposta che indicava che la risorsa era memorizzabile nella cache e supportava gli intervalli di byte. Cloud CDN ha ricevuto una risposta incoerente (ad esempio, con un codice di stato diverso da 206 Partial Content). Ciò si è verificato durante il tentativo di eseguire il riempimento della cache utilizzando una richiesta di intervalli di byte. Di conseguenza, il bilanciatore del carico ha interrotto la risposta al client. 2XX
byte_range_caching_forwarded_backend_response Il bilanciatore del carico ha ricevuto in precedenza una risposta che indicava che la risorsa era memorizzabile nella cache e supportava gli intervalli di byte. Cloud CDN ha ricevuto una risposta incoerente (ad esempio, con un codice di stato diverso da 206 Partial Content). Ciò si è verificato durante il tentativo di eseguire il riempimento della cache utilizzando una richiesta di intervalli di byte. Il bilanciatore del carico ha quindi inoltrato la risposta incoerente al client.

Restituito dal backend: è possibile qualsiasi codice di stato.

byte_range_caching_retrieval_abandoned Il client ha annullato una richiesta di intervalli di byte o una richiesta di convalida avviata da Cloud CDN.

Restituito dal backend: è possibile qualsiasi codice di stato.

byte_range_caching_retrieval_from_backend_failed_after_partial_response Si è verificato un errore in una richiesta di intervalli di byte o di convalida avviata da Cloud CDN. Fai riferimento alla voce di log di Cloud Logging corrispondente relativa alla richiesta avviata da Cloud CDN per lo stato dettagliato del backend. 2XX
cache_lookup_failed_after_partial_response Il bilanciatore del carico non è riuscito a gestire una risposta completa dalla cache di Cloud CDN a causa di un errore interno. 2XX
cache_lookup_timeout_after_partial_response Il flusso di ricerca nella cache di Cloud CDN è scaduto perché il client non ha recuperato i contenuti per tempo. 2XX
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: è possibile qualsiasi codice di stato.

Il codice di stato HTTP è 101 se la connessione HTTP(S) è stata aggiornata a una connessione WebSocket.

client_disconnected_before_any_response La connessione al client è stata interrotta prima che il bilanciatore del carico inviasse una risposta.

0

Il codice di stato HTTP è 101 se la connessione HTTP(S) è stata aggiornata a una connessione WebSocket.

client_timed_out Il Google Front End (GFE) ha interrotto la connessione client a causa della mancanza di avanzamento durante l'esecuzione del proxy della richiesta o della risposta. 0 o 408
client_cert_invalid_rsa_key_size Un certificato client intermedio o end-entity aveva una dimensione della chiave RSA non valida. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_unsupported_elliptic_curve_key Un certificato client o intermedio utilizza una curva ellittica non supportata. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_unsupported_key_algorithm Un certificato client o intermedio utilizza un algoritmo non RSA o non ECDSA. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_pki_too_large L'infrastruttura a chiave pubblica da utilizzare per la convalida ha più di dieci certificati intermedi che condividono le stesse informazioni Subject e Subject Public Key Info. Per saperne di più consulta Errori registrati per le connessioni chiuse. 0
client_cert_chain_max_name_constraints_exceeded Un certificato intermedio fornito per la convalida aveva più di dieci vincoli di nome. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_chain_invalid_eku Il certificato client o il relativo emittente non contiene un'estensione Extended Key Usage (EKU) che include clientAuth. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_validation_timed_out Tempo limite superato durante la convalida della catena di certificati. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_validation_search_limit_exceeded È stato raggiunto il limite di profondità o iterazione durante il tentativo di convalidare la catena di certificati. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_validation_not_performed Hai configurato mTLS senza impostare un TrustConfig. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_not_provided Il client non ha fornito il certificato richiesto durante l'handshake. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
client_cert_validation_failed La convalida del certificato client con TrustConfig non riesce quando vengono utilizzati algoritmi di hashing come MD4, MD5 e SHA-1. Per saperne di più, consulta Errori registrati per le connessioni chiuse. 0
config_not_found

Il bilanciatore del carico non ha una configurazione di progetto. Questo può verificarsi in modo intermittente dopo aver apportato modifiche alla configurazione che aggiungono una nuova risorsa.

Un'altra causa dell'errore è che il GFE del primo livello non riesce a comunicare con il GFE del secondo livello. Ciò può essere dovuto a un errore interno, ad esempio un'implementazione in corso, un sovraccarico del bilanciatore del carico o problemi di configurazione intermittenti.

Questi errori sono di natura temporanea e dovrebbero rientrare ampiamente nello SLA. Tuttavia, se la percentuale di errori supera lo 0,01%, contatta l'assistenzaGoogle Cloud per ulteriore aiuto.

404, 502, 503
direct_response Il bilanciatore del carico ha ignorato questa richiesta e ha restituito una risposta fissa. A seconda della natura del problema, potresti visualizzare qualsiasi codice di stato HTTP. Ad esempio, il codice di stato HTTP 410 indica che il backend non è disponibile a causa di un mancato pagamento.
denied_by_security_policy Il bilanciatore del carico ha negato questa richiesta a causa di una policy di sicurezza di Google Cloud Armor. Configurato nella policy di sicurezza.
error_uncompressing_gzipped_body Si è verificato un errore durante la decompressione di una risposta HTTP compressa con gzip. 502, 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, 503
failed_to_pick_backend Il bilanciatore del carico non è riuscito a selezionare un backend integro per gestire la richiesta. 502, 503
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 tramite TLS. 502, 503
headers_too_long Le intestazioni della richiesta erano più grandi del massimo consentito. 413
http_version_not_supported Versione HTTP non supportata. Sono supportati solo i protocolli HTTP 0.9, 1.0, 1.1 e 2.0. 400
internal_error Errore interno nel bilanciatore del carico. In genere rappresenta un errore temporaneo nell'infrastruttura del bilanciatore del carico. Riprova a fare la query. 4XX o 5XX
invalid_chunk_framing Le richieste e le risposte inviate con l'intestazione Transfer-Encoding: Chunked non sono conformi alla RFC 9112. In base alla RFC, il campo chunked_body e il campo last-chunk devono entrambi terminare con CRLF. 400
invalid_external_origin_endpoint La configurazione del backend esterno non è valida. Esamina la configurazione del NEG internet e assicurati che specifichi un FQDN/indirizzo IP e una porta validi. 4XX
invalid_request_headers

Le intestazioni della richiesta HTTP ricevute da un client contengono almeno un carattere non consentito in base a una specifica HTTP applicabile.

Ad esempio, i nomi dei campi di intestazione che includono virgolette doppie (") o qualsiasi carattere al di fuori dell'intervallo ASCII standard (ovvero qualsiasi byte >= 0x80) non sono validi.

Per saperne di più, consulta:

400
invalid_http2_client_header_format Le intestazioni HTTP/2 di un client non sono valide. Per saperne di più, consulta invalid_request_headers. 400
invalid_http2_client_request_path

Il percorso della richiesta HTTP/2 da un client contiene almeno un carattere non consentito in base alla specifica URI.

Per saperne di più, consulta la sezione "3.3. Path" della RFC 3986.

400
multiple_iap_policies Non è possibile combinare più policy Identity-Aware Proxy (IAP). Se hai una policy IAP collegata a un servizio di backend e un'altra policy collegata a un oggetto serverless, rimuovi una delle policy e riprova. Gli oggetti serverless includono App Engine, Cloud Run e Cloud Run Functions. 500
malformed_chunked_body Il corpo della richiesta è stato codificato in chunk in modo errato. 411
request_loop_detected Il bilanciatore del carico ha rilevato un loop di richieste. Questo loop potrebbe essere causato da una configurazione errata per cui il backend ha inoltrato la richiesta al bilanciatore del carico. 502, 503
required_body_but_no_content_length La richiesta HTTP deve avere un corpo, ma le intestazioni della richiesta non includono un'intestazione Content-Length o Transfer-Encoding: chunked. 400, 403, 411
retriable_error

Il bilanciatore del carico ha riscontrato un errore dell'infrastruttura ed è possibile ritentare la richiesta. Questo può verificarsi in modo intermittente dopo aver apportato modifiche alla configurazione che aggiungono o fanno riferimento a una nuova risorsa.

Questo può verificarsi anche quando il GFE del primo livello non riesce a comunicare con il GFE di secondo livello a causa di un errore interno, ad esempio un'implementazione in corso, un sovraccarico del bilanciatore del carico o un problema di configurazione intermittente.

Questi errori sono di natura temporanea e dovrebbero rientrare ampiamente nello SLA. Tuttavia, se la percentuale di errori supera lo 0,01% per un periodo prolungato, contatta l'assistenzaGoogle Cloud per ulteriore aiuto.

404, 502, 503
secure_url_rejected È stata ricevuta una richiesta con un URL https:// tramite una connessione HTTP/1.1 con testo non crittografato. 400
server_cert_chain_exceeded_limit La catena di certificati del server è troppo lunga (più di 10 certificati intermedi inclusi nel certificato server). 502, 503

server_cert_chain_invalid_eku

Il certificato server ha un campo di estensione Extended Key Usage (EKU), ma questo campo non include serverAuth.

server_cert_chain_max_name_constraints_exceeded

Un certificato intermedio fornito per la convalida aveva più di dieci vincoli di nome. 502, 503
server_cert_exceeded_size_limit Il payload del certificato server (inclusi eventuali certificati intermedi) è troppo grande (superiore a 16 KB). 503
server_cert_invalid_rsa_key_size

Un server o un certificato intermedio ha una dimensione della chiave RSA non valida.

Non viene eseguita alcuna convalida.

Le chiavi RSA possono variare da 2048 a 4096 bit.

503
server_cert_not_provided Il server non ha fornito il certificato richiesto durante l'handshake. 503
server_cert_pki_too_large

L'infrastruttura a chiave pubblica da utilizzare per la convalida ha più di dieci certificati intermedi che condividono le stesse informazioni Subject e Subject Public Key Info.

Non viene eseguita alcuna convalida.

503
server_cert_trust_config_not_found TrustConfig corrispondente non trovato. 503
server_cert_unsupported_elliptic_curve_key

Un server o un certificato intermedio utilizza una curva ellittica non supportata.

Non viene eseguita alcuna convalida.

Le curve valide sono P-256 e P-384.

503
server_cert_unsupported_key_algorithm

Un server o un certificato intermedio utilizza un algoritmo non RSA o non ECDSA.

Non viene eseguita alcuna convalida.

503
server_cert_validation_internal_error Errore interno durante la convalida della catena di certificati. 503
server_cert_validation_not_performed

Hai configurato mTLS senza configurare una risorsa TrustConfig.

503
server_cert_validation_search_limit_exceeded

È stato raggiunto il limite di profondità o iterazione durante il tentativo di convalidare la catena di certificati.

La profondità massima per una catena di certificati è dieci, inclusi i certificati radice e server. Il numero massimo di iterazioni è 100 (certificati esaminati per convalidare la catena di certificati del server).

503
server_cert_validation_timed_out Il limite di tempo è stato superato durante il tentativo di convalidare la catena di certificati. 503
server_cert_validation_unavailable Il servizio non è in grado di eseguire la convalida della catena di certificati. 503
ssl_certificate_san_verification_failed Il bilanciatore del carico non riesce a trovare un nome alternativo del soggetto (SAN) nel certificato SSL presentato dal backend che corrisponde al nome host configurato. 502, 503
ssl_certificate_chain_verification_failed La verifica del certificato SSL non è riuscita per il certificato SSL presentato dal backend. 502, 503
throttled_by_security_policy La richiesta è stata bloccata da una regola di limitazione di Cloud Armor. 429
unsupported_method Il client ha fornito un metodo di richiesta HTTP non supportato. 400
unsupported_100_continue La richiesta del client includeva l'intestazione "Expect: 100-continue" su un protocollo che non la supporta. 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 stato possibile a seconda della natura dell'errore di handshake.
request_body_too_large Il corpo della richiesta HTTP superava il limite 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, 503

429 (limitato da IAP)

serverless_neg_routing_failed La richiesta NEG serverless non può essere inviata. Questo errore può verificarsi quando non è possibile raggiungere la regione specificata nel NEG o quando non è possibile trovare il nome della risorsa (ad esempio, il nome delle funzioni Cloud Run). 404, 502, 503
fault_filter_abort Questo errore può verificarsi se il cliente ha configurato un filtro per gli errori e il filtro per gli errori è stato attivato per la richiesta specificata. Il valore deve essere compreso tra 200 e 599.
early_data_rejected

La richiesta inviata in TLS Early Data non era valida.

Ciò potrebbe verificarsi nei seguenti casi, ma non solo:

  • In TargetHttpsProxy, TLS Early Data è impostato su STRICT, ma la richiesta includeva parametri di query.
  • In TargetHttpsProxy, TLS Early Data è impostato su STRICT o PERMISSIVE, ma la richiesta utilizzava un metodo HTTP non idempotente (come POST o PUT).
425
service_extension_error

Si è verificato un errore durante la chiamata a un'estensione di servizio utilizzata dal bilanciatore del carico.

Ciò potrebbe verificarsi se il plug-in Wasm risponde lentamente e supera il limite di 1 millisecondo per inviare la risposta.

425

Visualizza i log per la convalida del certificato client mTLS

Per visualizzare gli errori registrati per le connessioni chiuse durante la convalida del certificato client mutual TLS, completa i seguenti passaggi.

Query dalla console

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

    Vai a Esplora log

  2. Fai clic sul pulsante di attivazione/disattivazione Mostra query.

  3. Incolla quanto segue nel campo della query. Sostituisci FORWARDING_RULE_NAME con il nome della regola di forwarding.

    jsonPayload.statusDetails=~"client_cert"
    jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
    resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
    
  4. Fai clic su Esegui query.

Log delle richieste delle policy di autorizzazione

L'oggetto authz_info nel payload JSON della voce di log del bilanciatore del carico contiene informazioni sulle policy di autorizzazione. Puoi configurare metriche basate su log per il traffico consentito o negato da queste policy. Controlla ulteriori dettagli del log delle policy di autorizzazione.

Campo Tipo Descrizione
authz_info.policies[] oggetto L'elenco delle policy che corrispondono alla richiesta.
authz_info.policies[].name stringa Il nome della policy di autorizzazione che corrisponde alla richiesta.

Il nome è vuoto per i seguenti motivi:

  • Nessuna policy ALLOW corrisponde alla richiesta e la richiesta viene rifiutata.
  • Nessuna policy DENY corrisponde alla richiesta e la richiesta viene consentita.
authz_info.policies[].result enum Il risultato può essere ALLOWED o DENIED.
authz_info.policies[].details stringa I dettagli includono quanto segue:
  • allowed_as_no_deny_policies_matched_request
  • denied_as_no_allow_policies_matched_request
  • denied_by_authz_extension
  • denied_by_cloud_iap
authz_info.overall_result enum Il risultato può essere ALLOWED o DENIED.

Logging per Cloud Armor

La tabella per i messaggi di errore HTTP statusDetail contiene alcuni messaggi che si applicano a Cloud Armor. Per saperne di più su cosa registra Cloud Armor, consulta Utilizza il logging delle richieste.

Logging per i deployment VPC condiviso

I log e le metriche del bilanciatore del carico delle applicazioni vengono in genere esportati nel progetto che contiene la regola di forwarding. Pertanto, gli amministratori del servizio, ovvero i proprietari o gli utenti dei progetti in cui viene creato il servizio di backend, non avranno accesso ai log e alle metriche del bilanciatore del carico per impostazione predefinita. Puoi utilizzare i ruoli IAM per concedere queste autorizzazioni agli amministratori dei servizi. Per saperne di più sui ruoli IAM disponibili e sui passaggi per fornire l'accesso, consulta Concedi l'accesso a Monitoring.

Interazione con i log

Puoi interagire con i log del bilanciatore del carico delle applicazioni esterno utilizzando l'API Cloud Logging. L'API Logging fornisce mezzi per 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 saperne di più sull'API Logging, consulta la panoramica dell'API Logging.

Monitoring

Il bilanciatore del carico esporta i dati di monitoraggio in Monitoring.

Puoi utilizzare le metriche di monitoraggio per:

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

Frequenza e conservazione dei report sulle metriche

Le metriche per i bilanciatori del carico delle applicazioni esterni vengono esportate in Cloud Monitoring in batch con granularità di 1 minuto. I dati di Monitoring vengono conservati per sei (6) settimane.

La dashboard fornisce l'analisi dei dati in intervalli predefiniti di 1 h (un'ora), 6 h (sei ore), 1 g (un giorno), 1 sett (una settimana) e 6 sett (sei settimane). Puoi richiedere manualmente l'analisi in qualsiasi intervallo compreso tra 6 settimane e 1 minuto.

Monitoraggio delle metriche

Puoi monitorare le seguenti metriche per i bilanciatori del carico delle applicazioni esterni.

Le seguenti metriche per i bilanciatori del carico delle applicazioni esterni globali sono riportate in Cloud Monitoring.

Metrica Nome Descrizione
Frequenza configurata del backend (anteprima) network.googleapis.com/loadbalancer/backend/configured_rate La frequenza massima in richieste al secondo configurata per gruppo di backend. Questo è il risultato della scalabilità della capacità target applicata dal gestore della scalabilità della capacità, se specificato.
Utilizzo configurato del backend (anteprima) network.googleapis.com/loadbalancer/backend/configured_utilization La capacità massima di utilizzo della CPU, espressa come frazione, configurata per gruppo di backend. Questo è il risultato della scalabilità della capacità target applicata dal gestore della scalabilità della capacità, se specificato.
Percentuale di errori del backend (anteprima) network.googleapis.com/loadbalancer/backend/error_rate Gli errori restituiti da ogni gruppo di backend al secondo.
Riempimento del backend (anteprima) network.googleapis.com/loadbalancer/backend/fullness Il livello di riempimento attuale di ogni gruppo di backend in percentuale, in base alla modalità di bilanciamento del bilanciatore del carico.
Latenze backend loadbalancing.googleapis.com/https/backend_latencies

Una distribuzione della latenza del backend. La latenza del backend è il tempo in millisecondi tra il primo byte della richiesta ricevuta dal backend e l'ultimo byte della risposta ricevuta dal proxy. Include: il tempo impiegato per l'invio della richiesta dal proxy al backend, il tempo impiegato dal backend per elaborare la richiesta e il tempo impiegato per l'invio della risposta al proxy.

Metriche personalizzate di bilanciamento del carico del backend (anteprima) network.googleapis.com/loadbalancer/backend/lb_custom_metric L'utilizzo corrente di ciascun gruppo di backend, in base alle metriche personalizzate che hai definito.
Frequenza backend (anteprima) network.googleapis.com/loadbalancer/backend/rate Le richieste ricevute da ogni gruppo di backend al secondo.
Utilizzo backend (anteprima) network.googleapis.com/loadbalancer/backend/utilization L'utilizzo aggregato della CPU delle VM nel gruppo espresso come frazione.
Conteggio delle richieste loadbalancing.googleapis.com/https/request_count Il numero di richieste gestite dal bilanciatore del carico delle applicazioni esterno.
Conteggio byte richiesta loadbalancing.googleapis.com/https/request_bytes_count Il numero di byte inviati come richieste dai client al bilanciatore del carico delle applicazioni esterno.
Conteggio byte risposta loadbalancing.googleapis.com/https/response_bytes_count Il numero di byte inviati come risposte dal bilanciatore del carico delle applicazioni esterno ai client.
Latenze totali loadbalancing.googleapis.com/https/total_latencies

Una distribuzione della latenza totale. La latenza totale è il tempo in millisecondi tra il primo byte della richiesta ricevuto dal proxy e l'ultimo byte della risposta inviata dal proxy. Include: il tempo impiegato dal proxy per elaborare la richiesta, il tempo impiegato per inviare la richiesta dal proxy al backend, il tempo impiegato dal backend per elaborare la richiesta, il tempo impiegato per inviare la risposta al proxy e il tempo impiegato dal proxy per elaborare la risposta e inviarla al client.

Non include l'RTT tra il client e il proxy. Inoltre, le pause tra le richieste sulla stessa connessione che utilizzano Connection: keep-alive non influiscono sulla misurazione. Questa misurazione viene in genere ridotta al 95° percentile nelle visualizzazioni di Cloud Monitoring.

Per le connessioni WebSocket, questo campo si riferisce all'intera durata della connessione.*

Esempio: un bilanciatore del carico riceve 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 ci sono state 60 richieste dal Regno Unito e 540 dagli Stati Uniti. Il monitoraggio delle metriche preserva la distribuzione in tutte le dimensioni. Puoi richiedere informazioni come le seguenti:

  • Latenza complessiva mediana (300/600) - 50 ms
  • Latenza mediana per il Regno Unito (30/60) - 100 ms
  • Latenza complessiva per il 95° percentile (570/600) - 100 ms
RTT frontend loadbalancing.googleapis.com/https/frontend_tcp_rtt

Una distribuzione dell'RTT frontend. L'RTT frontend è il tempo in millisecondi necessario per il trasferimento dei dati dal client al proxy e viceversa. Include il tempo impiegato da una richiesta per il trasferimento dal client al proxy e dal proxy al client. Questo valore non viene aggiornato per tutta la durata della connessione. Ad esempio, la configurazione di una connessione (TCP) con un handshake a tre vie richiederebbe 1,5 RTT.

Quando le richieste vengono elaborate, il bilanciatore del carico campiona e calcola la media del tempo impiegato dai dati per il trasferimento da e verso il client e il proxy, quindi registra un valore RTT uniformato. L'RTT uniformato è un algoritmo che gestisce le variazioni e le anomalie che potrebbero verificarsi nelle misurazioni dell'RTT.

Frazione delle classi di codici di risposta Frazione delle risposte totali del bilanciatore del carico delle applicazioni esterno che rientrano in ciascuna classe di codici di risposta (2xx, 4xx, ...). In Monitoring, questo valore è disponibile solo nelle dashboard predefinite. Non è disponibile per le dashboard personalizzate. Puoi utilizzare l'API Monitoring per impostare avvisi per questo valore.
Conteggio richieste backend loadbalancing.googleapis.com/https/backend_request_count Il numero di richieste inviate dal bilanciatore del carico delle applicazioni esterno ai backend.
Conteggio byte richieste backend loadbalancing.googleapis.com/https/backend_request_bytes_count Il numero di byte inviati come richieste dal bilanciatore del carico delle applicazioni esterno ai backend.
Conteggio byte risposte backend loadbalancing.googleapis.com/https/backend_response_bytes_count Il numero di byte inviati come risposte dai backend (inclusa la cache) al bilanciatore del carico delle applicazioni esterno.

* Per monitorare le connessioni WebSocket, crea un servizio di backend specificamente per i WebSocket.

La somma di RTT frontend e latenze backend potrebbe non essere inferiore o uguale alle latenze totali. Questo perché, anche se eseguiamo il polling dell'RTT sul socket dal GFE al client al momento dell'invio di un ACK per la risposta HTTP, ci affidiamo alla segnalazione del kernel per alcune di queste misurazioni e non possiamo essere certi che il kernel abbia una misurazione dell'RTT per quella specifica risposta HTTP. Il risultato finale è un valore RTT uniformato influenzato anche dalle risposte HTTP, dai SYN/ACK e dagli handshake SSL precedenti che non influiscono sui tempi effettivi della richiesta HTTP attuale.

Filtrare le dimensioni per le metriche

Puoi applicare filtri per le metriche per i bilanciatori del carico delle applicazioni esterni.

Le metriche vengono aggregate per ogni bilanciatore del carico delle applicazioni classico e bilanciatore del carico delle applicazioni esterno globale. Puoi filtrare le metriche aggregate in base alle seguenti dimensioni per resource.type="http_load_balancer" o resource.type="https_lb_rule". Tieni presente che non tutte le dimensioni sono disponibili in tutte le metriche.

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

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

  • FRONTEND_5xx: si è verificato un errore interno prima che il GFE potesse selezionare un backend. Il GFE ha restituito 5xx al client.
  • INVALID_BACKEND: il GFE non è riuscito a trovare un backend integro a cui assegnare la richiesta, quindi ha restituito un codice di stato 5xx al richiedente.
  • NO_BACKEND_SELECTED: si è verificato un errore o un'interruzione prima della selezione di un backend, di un reindirizzamento URL o della restituzione di una risposta 200 OK da parte di un bilanciatore del carico delle applicazioni classico con backend serverless.
  • MULTIPLE_BACKENDS: la richiesta è stata gestita potenzialmente da più backend. Ciò può verificarsi quando Cloud CDN ha gestito la richiesta parzialmente dalla cache e ha anche inviato una o più richieste di intervalli di byte al backend. Utilizza la suddivisione backend_scope per visualizzare ogni richiesta dal bilanciatore del carico al backend.

Quando scegli questa suddivisione, i grafici mostrano le metriche di backend (dal bilanciatore del carico ai backend), non le metriche di frontend (dal client al bilanciatore del carico).

backend_type

Il nome del gruppo di backend che ha gestito la richiesta del client. I valori restituiti possono essere INSTANCE GROUP, NETWORK_ENDPOINT_GROUP o UNKNOWN se il backend non è stato assegnato. Se non era disponibile alcun gruppo di backend o se la richiesta è stata gestita da un'altra entità, viene visualizzato uno dei seguenti valori anziché un gruppo di backend.

  • FRONTEND_5XX: si è verificato un errore interno prima che il GFE potesse selezionare un backend. Il GFE ha restituito 5xx al client.
  • INVALID_BACKEND: il GFE non è riuscito a trovare un backend integro a cui assegnare la richiesta, quindi ha restituito un codice di stato 5xx al richiedente.
  • NO_BACKEND_SELECTED: si è verificato un errore o un'interruzione prima della selezione di un backend, di un reindirizzamento URL o della restituzione di una risposta 200 OK da parte di un bilanciatore del carico delle applicazioni classico con backend serverless.
  • MULTIPLE_BACKENDS: la richiesta è stata gestita potenzialmente da più backend. Ciò può verificarsi quando Cloud CDN ha gestito la richiesta parzialmente dalla cache e ha anche inviato una o più richieste di intervalli di byte al backend. Utilizza la suddivisione backend_scope per visualizzare ogni richiesta dal bilanciatore del carico al backend.
backend_target_type Il nome del servizio di backend che ha gestito la richiesta. Può essere BACKEND_SERVICE, BACKEND_BUCKET, UNKNOWN se il backend non è stato assegnato oppure NO_BACKEND_SELECTED se si è verificato un errore o un'interruzione prima della selezione di un backend, di un reindirizzamento URL o della restituzione di una risposta 200 OK da parte di un bilanciatore del carico delle applicazioni classico con backend serverless.
matched_url_path_rule La regola di percorso della mappa URL che corrispondeva al prefisso della richiesta HTTP(S) (fino a 50 caratteri).
forwarding_rule_name Il nome della regola di forwarding utilizzata dal client per inviare la richiesta.
url_map_name

La regola di percorso della mappa URL o la regola di route configurata come parte della chiave della mappa URL. Può essere UNMATCHED o UNKNOWN come valori di riserva.

  • UNMATCHED si riferisce a una richiesta che non corrisponde ad alcuna regola del percorso URL, quindi url_map_name utilizza la regola del percorso predefinita.
  • UNKNOWN indica un errore interno.
target_proxy_name Il nome dell'oggetto proxy HTTP(S) target a cui fa riferimento la regola di forwarding.
backend_target_name Il nome del target di backend. Il target può essere un servizio di backend o un bucket di backend. Se non è stato assegnato un backend, viene restituito UNKNOWN.
backend_name Il nome del gruppo di istanze, del bucket o del NEG di backend. Viene restituito UNKNOWN se il backend non è stato assegnato oppure NO_BACKEND_SELECTED se si è verificato un errore o un'interruzione prima della selezione di un backend, di un reindirizzamento URL o della restituzione di una risposta 200 OK da parte di un bilanciatore del carico delle applicazioni classico con backend serverless.
backend_scope_type

Il tipo di ambito del gruppo di backend. Può essere GLOBAL, REGION, ZONE, MULTIPLE_BACKENDS oppure NO_BACKEND_SELECTED se si è verificato un errore o un'interruzione prima della selezione di un backend, di un reindirizzamento URL o della restituzione di una risposta 200 OK o di altri possibili output backend_type da parte di un bilanciatore del carico delle applicazioni classico con backend serverless.

MULTIPLE_BACKENDS viene utilizzato con la memorizzazione di chunk nella cache. Vengono inviate più query allo stesso backend per diversi chunk di dati per supportare una singola richiesta client.

proxy_continent Continente del GFE HTTP(S) che ha terminato la connessione HTTP(S), ad esempio America, Europe, Asia
protocol Protocollo utilizzato dal client, uno tra HTTP/1.0, HTTP/1.1, HTTP/2.0, QUIC/HTTP/2.0 e UNKNOWN.
response_code Il codice di stato HTTP della richiesta.
response_code_class La classe del codice di stato HTTP della richiesta: 200, 300, 400, 500 o 0 per nessuna classe.
cache_result Risultato della cache per la gestione della richiesta HTTP tramite proxy: HIT, MISS, DISABLED, PARTIAL_HIT (per una richiesta gestita parzialmente dalla cache e parzialmente dal backend) o UNKNOWN.
client_country Paese del client che ha inviato la richiesta HTTP, ad esempio United States o Germany.
load_balancing_scheme Lo schema di bilanciamento del carico utilizzato. Se viene utilizzato il bilanciatore del carico delle applicazioni classico, il valore è EXTERNAL. Se viene utilizzato il bilanciatore del carico delle applicazioni esterno globale, il valore è EXTERNAL_MANAGED.

Passaggi successivi