Monitora le prestazioni del database

Esistono diversi modi per monitorare il rendimento di Firebase Realtime Database e rilevare potenziali problemi nella tua app. Controllare la larghezza di banda e il carico in entrata e in uscita della tua app può anche darti un'idea di cosa aspettarti nella fattura. Inoltre, se qualcosa non va, avere un quadro chiaro delle operazioni del database può essere uno strumento utile per la risoluzione dei problemi.

Questa pagina illustra il Realtime Databasemonitoraggio del rendimento. Per il monitoraggio dell'utilizzo, consulta Monitorare l'utilizzo del database.

Utilizza gli strumenti di monitoraggio Realtime Database

Puoi raccogliere dati sul rendimento del tuo Realtime Database tramite diversi strumenti, a seconda del livello di granularità di cui hai bisogno.

Utilizzare lo strumento di profilazione Realtime Database

Lo strumento di profilazione Realtime Database fornisce una panoramica in tempo reale delle operazioni di lettura/scrittura sul database. Il report include informazioni sulla velocità e sulle dimensioni del payload di ogni operazione, oltre alle query non indicizzate. Tuttavia, non include informazioni storiche o statistiche sull'overhead della connessione e non deve essere utilizzato per stimare i costi di fatturazione.

Per scoprire di più sull'utilizzo dello strumento di profilazione, consulta Eseguire il profiling del database.

Utilizzare la console Firebase

La scheda Utilizzo nella console Firebase offre informazioni sulle connessioni simultanee al database, sulla quantità di dati archiviati, sulla larghezza di banda in uscita (incluso l'overhead del protocollo e della crittografia) e sul carico del database in intervalli di 1 minuto. Sebbene la scheda Utilizzo ti offra una panoramica più accurata del rendimento complessivo del database, potresti non essere in grado di visualizzare i dettagli necessari per risolvere potenziali problemi di rendimento.

Utilizza Cloud Monitoring

Con Cloud Monitoring di Google Cloud, puoi utilizzare Esplora metriche per visualizzare le singole metriche sul rendimento o creare diverse dashboard con grafici che mostrano varie combinazioni di metriche sul rendimento nel tempo. L'integrazione di Realtime Database con Cloud Monitoring offre il livello di granularità più elevato.

I passaggi per configurare Cloud Monitoring sono descritti in Monitorare l'utilizzo del database.

Consulta le sezioni seguenti per suggerimenti sull'utilizzo di metriche Cloud Monitoring specifiche per rilevare i problemi di prestazioni.

Monitorare il rendimento in Cloud Monitoring

Se riscontri problemi di prestazioni, inclusi tempo di attività o latenza, ti consigliamo di utilizzare Cloud Monitoring per monitorare le seguenti metriche. Tieni presente che tutti i nomi dei tipi di metriche sono preceduti da firebasedatabase.googleapis.com/.

Nome metrica Descrizione
Carico database

io/database_load. Utilizza questa metrica per monitorare la quantità di larghezza di banda del database disponibile in uso per l'elaborazione delle richieste nel tempo. Potresti riscontrare problemi di rendimento man mano che il carico del database si avvicina alla larghezza di banda totale disponibile. Puoi anche vedere quali tipi di operazioni utilizzano il carico maggiore e risolvere i problemi di conseguenza. Il carico registrato potrebbe superare il 100% per le operazioni che richiedono più di un minuto. Questo accade quando la larghezza di banda totale utilizzata per più minuti viene condensata nell'intervallo di generazione dei report di un minuto al termine dell'operazione.

Rete disattivata per superamenti

network/disabled_for_overages. Questa metrica riflette eventuali interruzioni che potrebbero essersi verificate se Realtime Database avesse superato i limiti di larghezza di banda o di rete.

Spazio di archiviazione disattivato per gli eccessi

storage/disabled_for_overages. Questa metrica riflette eventuali interruzioni del servizio che potrebbero essersi verificate se Realtime Database ha superato i limiti di spazio di archiviazione.

Combina le metriche nei grafici della dashboard per ottenere approfondimenti e panoramiche utili. Ad esempio, prova le seguenti combinazioni:

  • Operazioni:utilizza la metrica io/database_load per vedere la percentuale di caricamento totale del database utilizzata da ciascun tipo di operazione. Assicurati di raggruppare io/database_load per tipo per risolvere i problemi relativi ai diversi tipi di operazioni.
  • Spazio di archiviazione: utilizza storage/limit e storage/total_bytes per monitorare il tuo utilizzo dello spazio di archiviazione in relazione ai limiti di Realtime Database. Puoi anche aggiungere storage/disabled_for_overages per verificare se la tua app ha registrato un tempo di riposo a causa del superamento dei limiti di spazio di archiviazione.
  • Overhead SSL: utilizza network/https_requests_count per monitorare quante richieste di connessione SSL ha ricevuto il tuo database e suddividi le richieste che hanno riutilizzato un ticket di sessione SSL esistente con il filtro reused_ssl_session. Puoi misurare questo valore rispetto a network/sent_bytes_count e network/sent_payload_and_protocol_bytes_count per monitorare se la tua app utilizza o meno i ticket di sessione SSL in modo efficiente.

Puoi anche configurare gli avvisi tramite Cloud Monitoring e ricevere notifiche in base alle metriche Realtime Database. Ad esempio, puoi scegliere di ricevere una notifica se il tuo io/database_load si sta avvicinando a una determinata soglia.

Consulta l'elenco completo delle metriche Realtime Database disponibili tramite Cloud Monitoring.

Tipi di caricamento del database

La metrica io/database_load fornisce anche un'etichetta del tipo di operazione che ha causato il caricamento. Di seguito sono riportati i possibili tipi di operazioni misurate:

  • admin: operazioni di amministrazione come l'impostazione di regole e la lettura dei metadati del progetto.
  • auth: verifica dell'autenticazione da account di servizio o Firebase Authentication per un singolo client.
  • client_management: gestione dell'aggiunta e della rimozione di connessioni simultanee, incluse le operazioni di disconnessione durante la rimozione.
  • get_shallow: recupero dei dati da un comando GET REST con shallow=true.
  • get: gestione delle operazioni GET REST.
  • listen: recupero dei dati iniziali per le operazioni on e once dai client collegati.
  • on_disconnect: registrazione delle operazioni di disconnessione dai client.
  • put: gestione delle operazioni set da parte dei client o delle operazioni PUT REST.
  • transaction: esecuzione di transazioni da richieste REST condizionali o da un'operazione transaction da un client.
  • update: gestione delle operazioni update o delle richieste REST PATCH.

Monitorare le regole di sicurezza in Cloud Monitoring

Puoi anche analizzare la valutazione delle regole di sicurezza. Tieni presente che a tutti i nomi dei tipi di metrica viene anteposto il prefisso firebasedatabase.googleapis.com/.

Nome metrica Descrizione
Valutazioni delle regole rules/evaluation_count. Il numero di valutazioni delle regole di Realtime Database eseguite in risposta a richieste di scrittura o lettura. Puoi suddividere questa metrica in base al risultato della richiesta (ALLOW, DENY o ERROR).

Personalizza il grafico Cloud Monitoring per le valutazioni delle regole in base alle tue esigenze, ad esempio filtrando in base a risultati di valutazione specifici, ALLOW, DENY o ERROR. La configurazione e la personalizzazione dei grafici sono trattate in Monitorare l'utilizzo del database.

Consulta l'elenco completo delle metriche Realtime Database disponibili tramite Cloud Monitoring.