Informazioni sul monitoraggio delle prestazioni in Firestore
Cloud Monitoring raccoglie metriche, eventi e metadati dai prodotti Google Cloud. È inoltre possibile accedere ai dati riportati nella dashboard Utilizzo e nell'utilizzo delle regole di sicurezza tramite Cloud Monitoring per un'analisi più dettagliata. Con Cloud Monitoring, puoi anche configurare dashboard personalizzate e avvisi di utilizzo.
Questo documento illustra come utilizzare le metriche, saperne di più sulla dashboard delle metriche personalizzate e sull'impostazione 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, inserite nei report tramite una dashboard o utilizzate per creare avvisi. Ogni risorsa ha anche un set di etichette delle risorse, ovvero coppie chiave-valore contenenti informazioni aggiuntive sulla risorsa. Le etichette delle risorse sono disponibili per tutte le metriche associate alla risorsa.
Utilizzando l'API Cloud Monitoring, le prestazioni di Firestore vengono monitorate mediante le seguenti risorse:
Risorse | Description | Modalità database supportata |
firestore.googleapis.com/Database (consigliata) | Tipo di risorsa monitorata che fornisce suddivisioni per project , location * e database_id . L'etichetta database_id sarà (default) per i database creati senza un nome specifico. | Tutte le metriche sono supportate per entrambe le modalità,
ad eccezione delle seguenti metriche che non sono supportate per Firestore in
modalità Datastore:
|
firestore_instance | Il tipo di risorsa è stato monitorato per i progetti Firestore e non fornisce analisi dei database. | Si applica a Firestore Native |
datastore_request | Il tipo di risorsa monitorata per i progetti Datastore e non fornisce analisi per i database. | Si applica a entrambe le modalità. |
Metriche
Firestore è disponibile in due diverse modalità: Firestore Native e Firestore in modalità Datastore. Per un confronto delle funzionalità tra queste due modalità, vedi Scegliere tra le modalità di database.
Per un elenco completo delle metriche per entrambe le modalità, consulta i seguenti link:
Metriche di runtime del servizio
Le metriche serviceruntime
forniscono una panoramica generale del traffico di un progetto. Queste metriche sono disponibili per la maggior parte delle API Google Cloud. Il tipo di risorsa monitorata consumed_api
contiene queste metriche comuni. Queste metriche vengono campionate
ogni 30 minuti, per cui i dati vengono semplificati.
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 si cerca di capire in che modo l'applicazione interagisce con Firestore, è importante comprendere le metriche in base al nome del metodo RPC.
Se vuoi conoscere 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 database.
api/request_count
Questa metrica fornisce il conteggio delle richieste completate a livello di 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 il tasso di errore.
Nella figura 1 si possono vedere 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 è riuscita.
Nella figura 2 si possono vedere i commit raggruppati per response_code
. In questo esempio, vediamo solo le risposte HTTP 200 che implicano che il database è integro.
api/request_latencies
La metrica api/request_latencies
fornisce distribuzioni della latenza tra tutte le richieste completate.
Firestore registra le metriche dal componente Servizio Firestore. Le metriche di latenza includono il tempo in cui Firestore riceve la richiesta fino al momento in cui Firestore completa l'invio della risposta, incluse le interazioni con il livello di archiviazione. Per questo motivo, queste metriche non includono la latenza di round trip (rtt) tra il client e il servizio Firestore.
api/request_sizes e api/response_sizes
Le metriche api/request_sizes
e api/response_sizes
forniscono rispettivamente
insight sulle dimensioni dei payload (in byte). Questi possono essere utili per comprendere carichi di lavoro di scrittura che inviano grandi quantità di dati o query troppo ampie e restituiscono payload di grandi dimensioni.
Nella Figura 5 è disponibile una mappa termica per le dimensioni di risposta per il metodo RunQuery
.
Possiamo vedere che le dimensioni sono stabili, con una mediana di 50 byte e che, complessivamente, sono comprese tra 10 e 100 byte. Le dimensioni dei payload sono sempre misurate in byte non compressi, esclusi i overhead di controllo della trasmissione.
Metriche relative alle operazioni dei documenti
Firestore fornisce i conteggi delle operazioni di lettura, scrittura ed eliminazione. La metrica di scrittura fornisce una suddivisione tra le operazioni "CREATE" e "UPDATE". Queste metriche sono allineate con le operazioni CRUD.
Le seguenti metriche possono essere utilizzate per capire se il tuo database ha un'elevata capacità di lettura o scrittura e la percentuale di nuovi documenti rispetto a quelli 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 mostri il rapporto tra documenti letti e documenti scritti. In questo esempio, il numero di documenti letti è circa il 6% superiore a quello di documenti scritti.
Metriche relative alle operazioni dei documenti
Queste metriche forniscono distribuzioni in byte delle dimensioni dei payload per le letture (ricerche
e query) e le scritture in un database Firestore. I valori rappresentano la dimensione totale del payload. Ad esempio, qualsiasi risultato restituito da una query.
Queste metriche sono simili alle metriche api/request_sizes
e api/response_sizes
, con la differenza principale che le metriche relative alle operazioni dei documenti forniscono un campionamento più granulare, ma analisi meno granulari.
Ad esempio, le metriche delle operazioni dei documenti utilizzano la risorsa monitorata datastore_request
, quindi non è prevista alcuna suddivisione del servizio o del metodo.
entity/read_sizes
: distribuzione delle dimensioni dei documenti letti.entity/write_sizes
: distribuzione delle dimensioni dei documenti scritti.
Metriche di indice
Le frequenze di scrittura dell'indice possono essere contrastate con la metrica document/write_ops_count
per comprendere il rapporto di fanout dell'indice.
index/write_count
: conteggio delle scritture dell'indice.
Nella Figura 7, puoi vedere come la frequenza di scrittura dell'indice può essere confrontata con quella di scrittura dei documenti. In questo esempio, per ogni scrittura di documento, sono presenti circa 6 scritture indice, che corrispondono a una percentuale di fanout dell'indice relativamente piccola.
Client collegati direttamente al database tramite gli SDK Firebase
Sono disponibili due metriche a contatore per monitorare l'attività dei client collegati direttamente ai database Firestore tramite SDK per dispositivi mobili, SDK web o entrambi. Queste metriche includono una funzionalità relativa agli ascoltatori di snapshot in tempo reale, in cui le modifiche pertinenti al database vengono trasmesse immediatamente ai client.
network/active_connections
: il numero di connessioni attive nel momento specifico. Ogni client web o mobile ha una connessione.network/snapshot_listeners
: il numero di Listener di snapshot attualmente registrati in tutti i client connessi. Potrebbero esistere 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 Firestore Native che per Firestore nei database in modalità Datastore. Utilizza queste metriche per monitorare l'effetto del criterio TTL applicato.
document/ttl_deletion_count
: conteggio totale dei documenti eliminati dai servizi TTL.
Nella figura 9 puoi vedere la percentuale di documenti eliminati ogni minuto in un determinato periodo di giorni.
document/ttl_expiration_to_deletion_delays
: tempo trascorso tra la scadenza di un documento con un 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 documenti con criteri TTL. Sono necessari meno di 0,5 secondi per eliminare i documenti scaduti con TTL al 99° percentile. Ciò implica che il sistema funziona normalmente. In genere Firestore elimina i documenti scaduti entro 24 ore, ma questo non è garantito. Se noti che sta richiedendo più di 24 ore, contatta l'assistenza.
Passaggio successivo
- 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.