Ogni richiesta Cloud CDN viene registrata Cloud Logging. Per informazioni su come attivare e disattivare il logging, consulta la panoramica del monitoraggio e del logging del bilanciatore del carico delle applicazioni esterno e di Cloud CDN.
I log di Cloud CDN sono associati al bilanciatore del carico delle applicazioni esterno che a cui sono collegati i backend Cloud CDN. I log di Cloud CDN sono indicizzati innanzitutto mediante una regola di forwarding e poi tramite mappa URL.
Per visualizzare i log di Cloud CDN:
Console
- Nella console Google Cloud, vai alla pagina Esplora log.
- Nel menu Risorsa, seleziona Bilanciatore del carico HTTP Cloud.
- Visualizza i log come segue:
- Visualizza tutti i log: seleziona il menu Risorsa, quindi seleziona Tutte le regole di forwarding.
- Visualizza i log per una regola di forwarding: seleziona il nome della regola di forwarding dall'elenco delle regole di forwarding.
- Visualizza i log di una mappa URL utilizzata da una regola di inoltro: seleziona una regola di inoltro e poi una mappa URL.
Richiesta gestita dal backend
Per verificare che una richiesta venga fornita da un backend abilitato per Cloud CDN, devi cercare tre campi principali:
httpRequest
: quando una richiesta viene eseguita da un backend, puoi vedere che la cache è compilata e puoi confermare l'URL della richiesta.cacheFillBytes:
NUMBER_OF_BYTEScacheLookup: True
requestURL
: URL
jsonPayload
: dal campostatusDetails
, puoi confermare che il è stata fornita dal backend.statusDetails: "response_sent_by_backend"
Richiesta gestita dalla cache
La seguente voce di log mostra un hit della cache.
{ insertId: "1oek5rg3l3fxj7" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" cacheId: "SFO-fbae48ad" statusDetails: "response_from_cache" } httpRequest: { requestMethod: "GET" requestUrl: "http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg" requestSize: "577" status: 304 responseSize: "157" userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36" remoteIp: "CLIENT_IP_ADDRESS" cacheHit: true cacheLookup: true } resource: { type: "http_load_balancer" labels: { zone: "global" url_map_name: "URL_MAP_NAME" forwarding_rule_name: "FORWARDING_RULE_NAME" target_proxy_name: "TARGET_PROXY_NAME" backend_service_name: "" project_id: "PROJECT_ID" } } timestamp: "2020-06-08T23:41:30.078651Z" severity: "INFO" logName: "projects/PROJECT_ID/logs/requests" trace: "projects/PROJECT_ID/traces/241d69833e64b3bf83fabac8c873d992" receiveTimestamp: "2020-06-08T23:41:30.588272510Z" spanId: "7b6537d3672e08e1" }
Che cosa viene registrato nei log
Oltre alle informazioni generali contenute nella maggior parte dei log, come gravità, ID progetto, numero di progetto e timestamp, i log del bilanciatore del carico delle applicazioni esterno e di Cloud CDN contengono quanto segue:
Il campo del log HttpRequest, che acquisisce il codice di stato HTTP, i byte restituiti e se è stata eseguita una ricerca nella cache o un riempimento della cache.
Il campo
jsonPayload.cacheId
, che indica la posizione e la cache da cui è stata fornita la risposta della cache. Ad esempio, una risposta della cache pubblicata da una cache ad Amsterdam avrà un valore cacheId pari aAMS-85e2bd4b
, doveAMS
è il codice IATA e85e2bd4b
è un identificatore opaco dell'istanza della cache (in quanto alcune località Cloud CDN hanno più cache distinte).Le
statusDetails
ecacheDetail
campi dijsonPayload
.
Puoi filtrare i seguenti campi per determinare hit, fallimenti della cache o di riconvalida di una richiesta gestita da Cloud CDN:
Hit della cache
jsonPayload.statusDetails=("response_from_cache" OR "byte_range_caching")
o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer!=true
Hit cache convalidati con server di origine
jsonPayload.statusDetails="response_from_cache_validated"
o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer=true
Mancata corrispondenza nella cache
jsonPayload.statusDetails="response_sent_by_backend"
o
httpRequest.cacheHit!=true
httpRequest.cacheLookup=true
I campi log di tipo boolean vengono generalmente visualizzati solo se hanno il valore
true
. Se un campo booleano ha un valore false
, viene omesso dal log.
Per questi campi viene applicata la codifica UTF-8. Caratteri non UTF-8 vengono sostituiti da punti interrogativi.
Quando Cloud CDN gestisce una richiesta del client avviando la convalida
o richieste di intervalli di byte, il campo serverIp
viene omesso
Voce di log di Cloud Logging per la richiesta del client. Questo accade perché Cloud CDN può inviare richieste a più indirizzi IP del server in risposta a una singola richiesta del client.
Ogni richiesta avviata da Cloud CDN crea un log di Cloud Logging
. La voce di log risultante contiene un campo parentInsertId
all'interno di jsonPayload
. Puoi utilizzare questo campo per identificare il insertId
della voce del log per la singola richiesta del client che ha richiesto a Cloud CDN di avviare la richiesta di convalida o la richiesta di intervallo di byte. Inoltre, la voce del log identifica Cloud CDN come user agent.
Monitoraggio per Cloud CDN
Cloud CDN esporta i dati di monitoraggio in Cloud Monitoring. Il monitoraggio viene utilizzato per monitorare lo stato di un deployment di Cloud CDN.
Cloud Monitoring fornisce un insieme di definizioni di dashboard disponibili su GitHub nel
repository monitoring-dashboard-samples
come file JSON. Nel file di rete è presente una dashboard specifica per Cloud CDN denominata
cloud-cdn-monitoring.json
. Carica questa dashboard personalizzata su Monitoring
seguendo le istruzioni in
Installazione delle dashboard di esempio.
Query di esempio per il monitoraggio di Cloud CDN
Il monitoraggio ti consente creare dashboard personalizzate. Le dashboard possono utilizzare uno qualsiasi dei di monitoraggio delle metriche per i bilanciatori del carico delle applicazioni esterni. Di seguito sono riportati alcuni esempi di snippet MQL che puoi incollare nelle dashboard di monitoraggio personalizzate.
Conteggio byte richiesta suddiviso per risultato della cache
Questa query è incentrata sui backend
per cui è abilitato Cloud CDN. Per farlo, devi includere filter (metric.cache_result
!= 'DISABLED')
.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/response_bytes_count' | filter (metric.cache_result != 'DISABLED') | align rate(1m) | every 1m | group_by [metric.cache_result], [value_response_bytes_count_aggregate: aggregate(value.response_bytes_count)]
Latenza TCP di andata e ritorno del client al 95% per un target di backend specifico
Questa query include filter (resource.backend_target_name = 'example-backend')
,
che restringe il traffico verso il backend example-backend
. Un backend può essere un bucket Cloud Storage, un gruppo di VM Compute Engine o un backend esterno.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/frontend_tcp_rtt' | filter (resource.backend_target_name = 'example-backend') | group_by 1m, [value_frontend_tcp_rtt_aggregate: aggregate(value.frontend_tcp_rtt)] | every 1m | group_by [metric.proxy_continent], [value_frontend_tcp_rtt_aggregate_percentile: percentile(value_frontend_tcp_rtt_aggregate, 95)]
Conteggio delle richieste suddiviso per classe del codice di risposta per i backend abilitati per Cloud CDN
Questa query suddivide il traffico in base alla classe del codice di risposta (2xx, 3xx, 4xx, 5xx) aiutano a separare le operazioni riuscite del client, quelle del client e quelle del server.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/request_count' | filter (metric.cache_result != 'DISABLED') | group_by 1h, [row_count: row_count()] | every 1h | group_by [metric.response_code_class], [row_count_aggregate: aggregate(row_count)]
Conteggio delle richieste suddiviso per paese di origine
Questa query mostra il traffico suddiviso per paese di origine, che è determinato utilizzando gli indirizzi IP client.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/request_count' | align rate(1m) | every 1m | group_by [metric.client_country], [value_request_count_aggregate: aggregate(value.request_count)]
Passaggi successivi
Per saperne di più sul logging, incluso come esportare i log in BigQuery, in Pub/Sub o Cloud Storage e su come configurare le metriche basate su log per il monitoraggio e gli avvisi, consulta la documentazione di Cloud Logging.
Per informazioni sui campi inclusi nella voce di log
httpRequest
, consultaHttpRequest
.