Monitorare le metriche dei database

Questa pagina descrive come utilizzare le metriche Cloud Monitoring per Cloud Firestore per monitorare il database.

Metriche Cloud Monitoring per Cloud Firestore

Le sezioni seguenti forniscono una panoramica delle metriche disponibili per Cloud Firestore.

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' Cloud MonitoringAPI, Cloud Firestore il rendimento viene monitorato con la seguente risorsa:

Risorse Descrizione
firestore.googleapis.com/Database Tipo di risorsa monitorata che fornisce suddivisioni per project, location, e database_id.

Metriche

Per un elenco completo delle metriche per Cloud Firestore, consulta Cloud Firestore metriche. La sezione seguente descrive alcune delle metriche disponibili.

Metriche del 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'uniformazione 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 Cloud 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.

api/request_latencies

La metrica api/request_latencies fornisce le distribuzioni della latenza per tutte le richieste completate.

Cloud Firestore registra le metriche dal componente Cloud Firestore Servizio. Le metriche di latenza includono il tempo in cui Cloud Firestore riceve la richiesta fino al momento in cui Cloud Firestore termina l'invio della risposta, incluse le interazioni con il livello di archiviazione. Per questo motivo, la latenza di andata e ritorno (RTT) tra il client e il Cloud Firestore servizio non è inclusa in queste metriche.

Metriche delle operazioni sui documenti

Cloud Firestore fornisce i conteggi di letture, scritture ed 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 è a elevato numero di letture o scritture 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.

Metriche di fatturazione

Utilizza queste metriche per comprendere l'utilizzo della fatturazione. Queste metriche non includono la fatturazione delle operazioni di amministrazione (indicizzazione, importazione, esportazione ed eliminazione in blocco).

Metriche degli indici

Le frequenze di scrittura degli indici possono essere confrontate con la metrica document/write_ops_count per comprendere il fanout degli indici.

  • index/write_count: conteggio delle scritture degli indici.

Metriche TTL

Le metriche TTL per le metriche Cloud Firestore vengono utilizzate per monitorare l'effetto della policy TTL applicata.

  • document/ttl_deletion_count: conteggio totale dei documenti eliminati dai servizi TTL.
  • document/ttl_expiration_to_deletion_delays: tempo trascorso tra la scadenza di un documento con TTL e la sua eliminazione effettiva.

Visualizzare le dashboard predefinite e creare dashboard personalizzate

Cloud Firestore supporta le dashboard predefinite che utilizzano le metriche Cloud Monitoring. Puoi anche creare dashboard personalizzate.

Visualizzare le metriche di utilizzo del database

Apri le dashboard sull'utilizzo nella console Google Cloud per visualizzare le letture, le scritture e le eliminazioni dei documenti nel tempo.

Controllo degli accessi

Le dashboard sull'utilizzo richiedono l'autorizzazione IAM (Identity and Access Management) monitoring.timeSeries.list. I ruoli Proprietario progetto, Editor e Visualizzatore concedono questa autorizzazione. Puoi anche concedere questa autorizzazione tramite un Cloud Monitoring ruolo o un ruolo personalizzato.

Dashboard sull'utilizzo del database

Per visualizzare le metriche di utilizzo per un database Cloud Firestore:

  1. Nella console Google Cloud, vai alla pagina Database.

    Vai a Database

  2. Seleziona il database richiesto dall'elenco dei database.

  3. Nel menu di navigazione, fai clic su Utilizzo.

Dashboard sull'utilizzo e report di fatturazione

Le dashboard sull'utilizzo Cloud Firestore nella console forniscono una stima dell'utilizzo. Possono aiutarti a identificare picchi di utilizzo. Tuttavia, la dashboard non offre una visualizzazione esatta delle operazioni fatturate. L'utilizzo fatturato è probabilmente più elevato. Per monitorare la fatturazione, consulta le metriche di fatturazione.

In tutti i casi di discrepanza, il report sulla fatturazione ha la precedenza sulla dashboard sull'utilizzo.

Le operazioni di importazione ed esportazione causano discrepanze tra la dashboard sull'utilizzo e l'utilizzo fatturato. Le letture e le scritture eseguite da queste operazioni non vengono visualizzate nella dashboard sull'utilizzo.

Visualizzare le metriche sul rendimento del database

La pagina Monitoring nella sezione Cloud Firestore della console Google Cloud include dashboard di monitoraggio predefinite come Latenze delle richieste (P50 e P99), Codici di risposta e Statistiche delle query (P50). Puoi anche creare fino a una dashboard personalizzata. Per accedere alla pagina Monitoring di un database:

  1. Nella console Google Cloud, apri la pagina Cloud Firestore Database.

    Vai a Database

  2. Seleziona un database dall'elenco.

  3. Nel menu di navigazione, fai clic su Monitoring per aprire una dashboard.

Creare dashboard personalizzate Cloud Monitoring

In Cloud Monitoring, le dashboard personalizzate ti consentono di visualizzare le informazioni che ti interessano in modo organizzato. Ad esempio, puoi creare una dashboard per visualizzare le metriche sul rendimento e le policy di avviso per il tuo progetto nell'ambiente di produzione.

Per saperne di più sulla configurazione di una dashboard personalizzata, consulta Gestire le dashboard personalizzate e Aggiungere widget alla dashboard.

Creare una policy di avviso

In Cloud Monitoring, puoi creare avvisi per ricevere una notifica quando si verifica una modifica in una condizione di metrica. Puoi utilizzare questi avvisi per ricevere una notifica di potenziali problemi prima che influiscano sugli utenti.

Per saperne di più sulla creazione di avvisi, consulta Crea policy di avviso basate su soglie metriche.

Considera il seguente esempio in cui creiamo una policy di avviso di latenza. La policy di avviso controlla la latenza p99 su una finestra mobile di 5 minuti. Se la latenza p99 rimane superiore a 250 ms per 5 minuti, viene attivato l'avviso.

Console

  1. Nella console Google Cloud, vai alla pagina Monitoring e seleziona   Avvisi.

    Vai a Monitoring

  2. Seleziona Crea policy.

  3. Seleziona la metrica Latenze delle richieste dalla risorsa API utilizzata.

  4. Aggiungi un filtro del servizio per firestore.googleapis.com per i database di Firestore in modalità nativa.

  5. Fai clic su Avanti per configurare il trigger.

  6. Seleziona Tipi di condizioni come Soglia.

    Una condizione di soglia è impostata su un valore di soglia di 250 ms. Viene attivato un avviso quando il valore di latenza p99 rimane lo stesso per l'intero periodo della finestra mobile (5 minuti).

  7. Imposta il Valore soglia su 250.

  8. Fai clic su Avanti per configurare le notifiche.

  9. Imposta il nome della policy di avviso e fai clic su Avanti.

  10. Esamina le configurazioni degli avvisi e fai clic su Crea policy.

MQL

Puoi implementare la stessa policy di avviso di latenza utilizzando una query MQL (Monitoring Query Language). Per altri esempi di utilizzo di MQL, consulta Query MQL di esempio.

fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
    [value_request_latencies_percentile:
      percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'