Informazioni sul monitoraggio del rendimento in Firestore
Cloud Monitoring raccoglie metriche, eventi e metadati dai Google Cloud prodotti. I dati riportati nella dashboard Utilizzo e nell'utilizzo delle regole di sicurezza sono accessibili anche tramite Cloud Monitoring per un'analisi più dettagliata. Con Cloud Monitoring, puoi anche configurare dashboard personalizzate e avvisi di utilizzo.
Questo documento ti guida nell'utilizzo delle metriche, nella conoscenza della dashboard delle metriche personalizzate e nella configurazione degli avvisi.
Risorse monitorate
Una risorsa monitorata in Cloud Monitoring rappresenta un'entità logica o fisica, come una macchina virtuale, un database o un'applicazione. Le risorse monitorate contengono un insieme univoco di metriche che possono essere esplorate, riportate tramite una dashboard o utilizzate per creare avvisi. Ogni risorsa ha anche un insieme di etichette delle risorse, ovvero coppie chiave-valore che contengono informazioni aggiuntive sulla risorsa. Le etichette delle risorse sono disponibili per tutte le metriche associate alla risorsa.
Utilizzando l'API Cloud Monitoring, il rendimento di Firestore viene monitorato con le seguenti risorse:
| Risorse | Descrizione | Modalità database supportata |
firestore.googleapis.com/Database (consigliata) | Tipo di risorsa monitorata che fornisce suddivisioni per project,
location* e database_id . L'
database_id etichetta sarà (default) per i database creati
senza un nome specifico. |
Si applica a entrambe le modalità. |
firestore_instance | Tipo di risorsa monitorata per progetti Firestore e non fornisce la suddivisione per i database. | Si applica a Firestore in modalità Native |
datastore_request | Tipo di risorsa monitorata per progetti Datastore e non fornisce la suddivisione per i database. | Si applica a entrambe le modalità. |
Metriche
Firestore è disponibile in due modalità diverse: Firestore in modalità Native e Firestore in modalità Datastore. Per un confronto delle funzionalità tra queste due modalità, vedi Scegliere tra le modalità database modes.
Per un elenco completo delle metriche per entrambe le modalità, consulta i seguenti link:
Metriche di runtime del servizio
Le serviceruntime
metriche forniscono una panoramica generale del traffico di un progetto. Queste metriche sono
disponibili per la maggior parte delle Google Cloud API. Il tipo di risorsa monitorata
consumed_api
contiene queste metriche comuni. Queste metriche vengono campionate ogni 30 minuti, il che comporta un'attenuazione dei dati.
Un'etichetta di risorsa importante per le metriche serviceruntime è method. Questa etichetta rappresenta il metodo RPC sottostante chiamato. Il metodo SDK che chiami potrebbe non avere necessariamente lo stesso nome del metodo RPC sottostante. Il motivo è che l'SDK fornisce un'astrazione API di alto livello. Tuttavia, quando cerchi di capire come la tua applicazione interagisce con Firestore, è importante comprendere le metriche in base al nome del metodo RPC.
Se devi sapere qual è il metodo RPC sottostante per un determinato metodo SDK, consulta la documentazione dell'API.
Utilizza le seguenti metriche di runtime del servizio per monitorare il tuo database.
api/request_count
Questa metrica fornisce il conteggio delle richieste completate, in base a protocollo(protocollo di richiesta, ad esempio http, gRPC e così via),
codice di risposta (codice di risposta HTTP), response_code_class (classe del codice di risposta, ad esempio 2xx, 4xx e così via) e grpc_status_code (codice di risposta gRPC numerico). Utilizza questa metrica per osservare la richiesta API complessiva e calcolare la percentuale di errori.
Nella figura 1 sono visibili le richieste che restituiscono un codice 2xx raggruppate per servizio e metodo. I codici 2xx sono codici di stato HTTP che indicano che la richiesta è andata a buon fine.
Nella figura 2 sono visibili i commit raggruppati per response_code. In questo esempio, vediamo solo le risposte HTTP 200, il che implica che il database è integro.
api/request_latencies
La metrica api/request_latencies fornisce le distribuzioni della latenza per tutte le richieste completate.
Firestore registra le metriche dal componente Servizio Firestore. Le metriche di latenza includono il tempo che intercorre tra la ricezione della richiesta da parte di Firestore e il completamento dell'invio della risposta da parte di Firestore, incluse le interazioni con il livello di archiviazione. Per questo motivo, la latenza di round trip (rtt) tra il client e il servizio Firestore non è inclusa in queste metriche.
api/request_sizes e api/response_sizes
Le metriche api/request_sizes e api/response_sizes forniscono rispettivamente informazioni sulle dimensioni del payload (in byte). Queste metriche possono essere utili per comprendere i carichi di lavoro di scrittura che inviano grandi quantità di dati o le query troppo ampie e che restituiscono payload di grandi dimensioni.
Nella figura 5 è visibile una mappa termica delle dimensioni delle risposte per il metodo RunQuery.
Possiamo vedere che le dimensioni sono stabili, con una mediana di 50 byte e complessivamente tra 10 e 100 byte. Tieni presente che le dimensioni del payload vengono sempre misurate in byte non compressi, esclusi i sovraccarichi di controllo della trasmissione.
Metriche delle operazioni sui documenti
Firestore fornisce i conteggi delle letture, delle scritture e delle eliminazioni. La metrica di scrittura fornisce una suddivisione tra le operazioni "CREATE" e "UPDATE". Queste metriche sono allineate alle operazioni CRUD.
Le seguenti metriche possono essere utilizzate per capire se il database è incentrato sulla lettura o sulla scrittura e la frequenza di nuovi documenti rispetto ai documenti eliminati.
document/delete_ops_count: il numero di eliminazioni di documenti riuscite.document/read_ops_count: il numero di letture di documenti riuscite da query o ricerche.document/write_ops_count: il numero di scritture di documenti riuscite.
Nella figura 6 puoi vedere come creare un rapporto che mostra il rapporto tra documenti letti e documenti scritti. In questo esempio, il numero di documenti letti è di circa il 6% superiore al numero di documenti scritti.
Metriche delle dimensioni del payload
Queste metriche forniscono distribuzioni in byte delle dimensioni del payload per le letture (ricerche e query) e le scritture in un database Firestore. I valori rappresentano la dimensione totale del payload. Ad esempio, tutti i risultati restituiti da una query.
Queste metriche sono simili alle metriche api/request_sizes e api/response_sizes, con la differenza principale che le metriche delle operazioni sui documenti forniscono un campionamento più granulare, ma suddivisioni meno granulari.
Ad esempio, le metriche delle operazioni sui documenti utilizzano la risorsa monitorata datastore_request, quindi non è presente alcuna suddivisione per servizio o metodo.
entity/read_sizes: distribuzione delle dimensioni dei documenti letti.entity/write_sizes: distribuzione delle dimensioni dei documenti scritti.
Metriche di fatturazione (versione Enterprise)
Le seguenti metriche di fatturazione sono disponibili solo per la versione Enterprise di Firestore.
Utilizza queste metriche per comprendere l'utilizzo della fatturazione. Queste metriche non includono la fatturazione delle operazioni di amministrazione (indicizzazione, importazione, esportazione ed eliminazione collettiva).
api/billable_read_units: il numero di unità di lettura fatturabili. L'utilizzo può essere suddiviso per nome del servizio e metodo API.api/billable_write_units: il numero di unità di scrittura fatturabili. L'utilizzo può essere suddiviso per nome del servizio e metodo API.document/billable_managed_delete_write_units: il numero di unità di scrittura fatturabili dai servizi di eliminazione gestiti come TTL.
Metriche degli indici
Le frequenze di scrittura degli indici possono essere confrontate con la document/write_ops_count metrica
per comprendere il rapporto di fanout degli indici
ratio.
index/write_count: conteggio delle scritture degli indici.
Nella figura 7 puoi vedere come la frequenza di scrittura degli indici può essere confrontata con la frequenza di scrittura dei documenti. In questo esempio, per ogni scrittura di documenti, ci sono circa 6 scritture di indici, che è una frequenza di fanout degli indici relativamente piccola.
Client connessi direttamente al database utilizzando gli SDK Firebase
Sono disponibili due metriche di tipo indicatore per monitorare l'attività dei client connessi direttamente ai database Firestore tramite SDK mobile, SDK web o entrambi. Queste metriche includono una funzionalità relativa ai listener snapshot in tempo reale in cui le modifiche pertinenti nel database vengono immediatamente ritrasmesse ai client.
network/active_connections: il numero di connessioni attive in un determinato momento. Ogni client web o mobile ha una connessione.network/snapshot_listeners: il numero di listener snapshot attualmente registrati in tutti i client connessi. Potrebbero esserci più connessioni per client.
Puoi visualizzare queste metriche nella scheda Usage all'interno del database Firestore nella Console Firebase.
Metriche TTL
Le metriche TTL sono disponibili sia per i database Firestore in modalità Native sia per i database Firestore in modalità Datastore. Utilizza queste metriche per monitorare l'effetto della policy TTL applicata.
document/ttl_deletion_count: conteggio totale dei documenti eliminati dai servizi TTL.
Nella figura 9 puoi vedere la frequenza di eliminazione dei documenti ogni minuto in un periodo di giorni.
document/ttl_expiration_to_deletion_delays: tempo trascorso tra la scadenza di un documento con TTL e la sua eliminazione effettiva.
Nella figura 10 puoi vedere che questa metrica fornisce una distribuzione del tempo in secondi impiegato da Firestore per eliminare i documenti con policy TTL. Al 99° percentile, l'eliminazione dei documenti scaduti con TTL richiede meno di 0,5 secondi. Ciò implica che il sistema funziona normalmente. In genere, Firestore elimina i documenti scaduti entro 24 ore, ma non è garantito. Se noti che ci vogliono più di 24 ore, contatta l'assistenza.
Passaggi successivi
- Scopri come utilizzare la dashboard di Cloud Monitoring per visualizzare le metriche.
- Monitora l'utilizzo per identificare le letture, le scritture e le eliminazioni dei documenti nel tempo.