Visualizza, cerca e filtra i log delle richieste web del tuo sito con Cloud Logging

Puoi collegare il tuo progetto Firebase a Cloud Logging per visualizzare, cercare e filtrare i log delle richieste web per ciascuno dei tuoi siti Hosting. Questi log provengono dalla CDN fornita automaticamente da Firebase, quindi ogni richiesta al tuo sito e i dati delle richieste associati vengono registrati.

Ecco alcune cose che puoi fare con i log di Cloud Logging. Visita ogni sezione di questa pagina per scoprire i dettagli.

Se nel tuo progetto hai più siti Hosting, puoi selezionare per quali siti Hosting verranno esportati i log. Puoi quindi filtrare e visualizzare i dati dei log per sito Hosting e persino per dominio. Selezionando siti Hosting specifici per esportare i log, puoi anche controllare la quantità di dati elaborati per il tuo progetto.

  1. Fai clic su Collega nella scheda di integrazione Cloud Logging nella console Firebase.

    Per collegare o scollegare Cloud Logging, devi disporre delle autorizzazioni incluse in uno dei seguenti ruoli: Proprietario o Editor del progetto o Amministratore sviluppo Firebase.

  2. Segui le istruzioni sullo schermo per selezionare i siti Hosting per cui esportare i log in Cloud Logging.

    Se hai già uno o più siti Hosting attivi, il flusso di lavoro di collegamento mostra un livello di utilizzo dei dati stimato per i log di ciascuno dei tuoi siti Hosting. Questo valore è stimato in base agli ultimi 30 giorni.

Dopo il collegamento a Cloud Logging, i log per le nuove richieste ai tuoi siti Hosting vengono visualizzati in genere entro 30 minuti dalla richiesta.

Puoi anche scollegare Firebase Hosting da Cloud Logging, il che interrompe le esportazioni dei log delle richieste web in Cloud Logging.

Monitorare l'utilizzo dei dati per i log

Dopo aver eseguito il collegamento a Cloud Logging, puoi visualizzare il livello di utilizzo dei dati per i log dei tuoi siti Hosting:

Comprendere meglio il tuo sito

L'interfaccia Logs Viewer nella console Google Cloud offre strumenti per visualizzare log e dati specifici utilizzando query e filtri e pannelli di dati integrati. Scopri di più sul filtraggio dei log con le query nella sezione successiva.

  • Da dove proviene il traffico del tuo sito a livello granulare?
    Puoi visualizzare informazioni su ogni richiesta, tra cui IP di origine, referrer, città e stato.

  • Quando gli utenti visitano il tuo sito?
    Puoi utilizzare il riquadro Istogramma per visualizzare la distribuzione in intervalli di tempo specifici. In questo modo puoi ottenere informazioni sui picchi e sulle riduzioni normali dell'utilizzo della tua app, nonché rivelare eventuali picchi di traffico imprevisti.

  • Qual è la distribuzione dello stato per le richieste degli utenti finali?
    Puoi visualizzare lo stato di ogni richiesta e persino diagnosticare quelle che restituiscono errori. Puoi filtrare i log per Critical, Error o Warning.

  • Quanto tempo impiega il tuo sito a rispondere a una richiesta?
    Puoi visualizzare la latenza del tuo sito per ogni richiesta utilizzando il valore latency acquisito in ogni log.

  • Il tuo sito sfrutta la memorizzazione nella cache dei contenuti?
    Ogni log contiene un campo cacheHit per indicare se la risorsa del tuo sito è stata servita rapidamente dalla cache CDN di Hosting o se ha dovuto fare il viaggio completo al backend di Hosting. In questo modo puoi migliorare le prestazioni del tuo sito web sfruttando al meglio la CDN globale di Firebase. Ad esempio, puoi utilizzare i dati per perfezionare le abitudini di memorizzazione nella cache degli asset statici e dei contenuti dinamici.

  • Qual è la distribuzione del traffico ai tuoi vari domini?
    Se hai più domini o siti Hosting, puoi filtrare i log per dominio o per sito. In questo modo puoi vedere come viene distribuito il traffico. Quando filtri per dominio, puoi monitorare quale dominio viene visitato più spesso.

Filtrare i log con le query

Per scoprire come filtrare i log con le query, visita Query di esempio che utilizzano Logs Viewer e Creazione di query di log. La tabella seguente descrive i campi disponibili per queste query.

Per Hosting, ecco alcuni filtri iniziali per una query:

  • Risorsa (resource.type) - firebase_domain (dominio del sito Firebase Hosting)
  • Nome log (logName) - webrequests (Firebase Hosting)

Ogni voce di log ha una struttura predefinita e campi interrogabili (vedi LogEntry). Per Hosting, alcuni campi sono standard per una richiesta HTTP, ma ci sono altri valori di campo che derivano dall'elaborazione eseguita da Hosting su ogni richiesta.

Campo Descrizione
Firebase Hosting memorizza i seguenti campi nell'oggetto httpRequest della voce di log.
Questi campi sono definiti nella specifica HTTP.
cacheHit Se la CDN Hosting aveva la risorsa della risposta nella cache
latency La durata della richiesta, in secondi con il suffisso s (ad esempio, 1.256s)
protocol Il protocollo utilizzato per la richiesta (ad esempio, HTTP/1.1, HTTP/2, websocket)
referer L'indirizzo della pagina web precedente da cui è stato seguito un link alla pagina attualmente richiesta (se presente)
remoteIp L'IP client di origine per la richiesta
requestMethod Il metodo di richiesta (GET, POST, PUT e così via)
requestSize Le dimensioni della richiesta in byte
requestUrl L'URL completo della richiesta (ad esempio,
https://foo.web.app/bar o https://custom.domain.com?query=param)
responseSize Le dimensioni della risposta HTTP in byte
serverIp not populated
status Lo stato della risposta HTTP (ad esempio, 200 o 404)
userAgent L'intestazione User-Agent della richiesta
Firebase Hosting memorizza campi aggiuntivi nell'oggetto jsonPayload della voce di log.
acceptEncoding (dalla richiesta HTTP) Quale codifica dei contenuti, di solito un algoritmo di compressione, supporta il client (ad esempio, gzip o compress)
billable Se al tuo progetto è stata fatturata la richiesta
customDomain Se la richiesta è stata effettuata o meno per un dominio personalizzato
hostname Il nome host per cui è stata effettuata la richiesta
remoteIpCountry Il paese di origine della richiesta
remoteIpCity La città di origine della richiesta

Utilizzo delle metriche basate su log

Puoi visualizzare e creare metriche basate su log, quindi utilizzarle in Cloud Monitoring per creare grafici e criteri di avviso.

  • Sfrutta le metriche di sistema predefinite che vengono registrate automaticamente, ad esempio il numero di eventi di logging che si sono verificati in un periodo di tempo specifico.

  • Crea metriche definite dall'utente per il tuo progetto. Puoi contare il numero di voci di log che corrispondono a una determinata query o tenere traccia di valori particolari con le voci di log corrispondenti. Puoi filtrare utilizzando le espressioni regolari.

  • Utilizza Cloud Monitoring per registrare il numero di voci di log contenenti messaggi particolari o estrarre le informazioni sulla latenza riportate nelle voci di log. Puoi quindi utilizzare queste metriche nei grafici e nei criteri di avviso.

Firebase Hosting genera anche le seguenti metriche di logging specifiche di Hosting. Queste metriche non sono specifiche per una voce di log, ma per il sito Hosting specifico nel suo complesso.

  • log_bytes: Byte totali di utilizzo dei dati per ogni sito

  • response_count: Numero totale di risposte scritte per il sito

    Questa metrica include il campo dello stato HTTP, quindi puoi tracciare le risposte HTTP per stato (ad esempio).

Esportare i log in altri strumenti Google Cloud

Puoi anche esportare i log del tuo sito in altri strumenti Google Cloud, ad esempio Cloud Monitoring o BigQuery:

  • Utilizzando Cloud Monitoring, puoi creare metriche basate su log che puoi utilizzare in grafici e criteri di avviso.

  • Utilizzando BigQuery, puoi eseguire una delle seguenti operazioni:

    • Utilizza Data Studio per generare dashboard dei tuoi dati Hosting.
    • Esegui query per ottenere maggiori informazioni sulle tue richieste (dimensione media della risposta, hit e mancati hit della cache e così via).
    • Scopri quali URL richiedono effettivamente i tuoi utenti.
    • Combina i dati di Hosting con altri dati di Firebase che hai esportato in BigQuery ed esegui query in nuovi modi.