Monitora le prestazioni del database

Esistono diversi modi per monitorare le prestazioni del tuo Firebase Realtime Database e individuare potenziali problemi nella tua app. Guardare la larghezza di banda e il carico in entrata e in uscita della tua app può anche darti un'idea di cosa aspettarti sulla bolletta. Inoltre, se qualcosa sembra sbagliato, ottenere un quadro chiaro delle operazioni del database può essere un utile strumento di risoluzione dei problemi.

Questa pagina tratta il monitoraggio delle prestazioni di Realtime Database. Per il monitoraggio dell'utilizzo, vedere Monitorare l'utilizzo del database .

Utilizza gli strumenti di monitoraggio del database in tempo reale

Puoi raccogliere dati sulle prestazioni del tuo database in tempo reale attraverso alcuni strumenti diversi, a seconda del livello di granularità di cui hai bisogno.

Utilizzare lo strumento di profilazione del database in tempo reale

Lo strumento di profilazione del database in tempo reale 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 ciascuna operazione, oltre alle query non indicizzate. Tuttavia, non include informazioni cronologiche o statistiche sull'overhead di connessione e non deve essere utilizzato per stimare i costi di fatturazione .

Per ulteriori informazioni sull'utilizzo dello strumento Profiler, consulta Profilare il database .

Usa la console Firebase

La scheda Utilizzo nella console Firebase offre informazioni sulle connessioni simultanee al tuo database, sulla quantità di dati che stai archiviando, sulla larghezza di banda in uscita (incluso protocollo e sovraccarico di crittografia) e sul carico del tuo database a intervalli di 1 minuto. Sebbene la scheda Utilizzo fornisca una panoramica più accurata delle prestazioni complessive del database, potresti non essere in grado di eseguire il drill-down sufficiente per risolvere potenziali problemi di prestazioni.

Usa il monitoraggio della nuvola

Con Cloud Monitoring di Google Cloud, puoi utilizzare Metrics Explorer 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 massimo livello di granularità.

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

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

Monitora le prestazioni in Cloud Monitoring

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

Nome metrica Descrizione
Caricamento database

io/database_load . Utilizza questa metrica per monitorare la quantità di larghezza di banda del database disponibile utilizzata per l'elaborazione delle richieste nel tempo. Potresti riscontrare problemi di prestazioni quando il carico del database si avvicina alla larghezza di banda totale disponibile. Puoi anche vedere quali tipi di operazioni stanno utilizzando la maggior parte del carico e risolvere i problemi di conseguenza. Il carico segnalato potrebbe superare il 100% per le operazioni che richiedono più di un minuto. Ciò accade quando la larghezza di banda totale utilizzata per più minuti viene condensata nell'intervallo di report di un minuto dopo il completamento dell'operazione.

Rete disabilitata per eccedenze

network/disabled_for_overages . Questa metrica riflette eventuali interruzioni che potrebbero essersi verificate se il tuo database in tempo reale ha superato i limiti di larghezza di banda o di rete.

Archiviazione disabilitata per eccedenze

storage/disabled_for_overages . Questa metrica riflette eventuali interruzioni che potrebbero essersi verificate se il tuo database in tempo reale ha superato i limiti di archiviazione.

Combina le metriche nei grafici sulla tua dashboard per ottenere informazioni e panoramiche utili. Ad esempio, prova le seguenti combinazioni:

  • Operazioni: utilizzare la metrica io/database_load per vedere quanto del carico totale del database viene utilizzato da ciascun tipo di operazione. Assicurati di raggruppare io/database_load per tipo per risolvere diversi tipi di operazione.
  • Archiviazione: utilizzare storage/limit e storage/total_bytes per monitorare l'utilizzo dello storage in relazione ai limiti di storage di Realtime Database. Puoi anche aggiungere storage/disabled_for_overages per vedere se la tua app ha subito tempi di inattività a causa del superamento dei limiti di archiviazione.
  • Overhead SSL: utilizzare network/https_requests_count per monitorare il numero di richieste di connessione SSL ricevute dal database e suddividere 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 impostare avvisi tramite Cloud Monitoring e ricevere notifiche in base alle metriche del database in tempo reale. Ad esempio, puoi scegliere di ricevere una notifica se il tuo io/database_load si avvicina a una determinata soglia.

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

Tipi di caricamento del database

Il parametro io/database_load fornisce anche un'etichetta del tipo di operazione che ha causato il caricamento. Di seguito le possibili tipologie di operazioni misurate:

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

Monitora le regole di sicurezza in Cloud Monitoring

È inoltre possibile analizzare la valutazione delle regole di sicurezza. Tieni presente che tutti i nomi dei tipi di metrica sono preceduti da firebasedatabase.googleapis.com/ .

Nome metrica Descrizione
Valutazioni di regole rules/evaluation_count . Il numero di valutazioni delle regole del database in tempo reale eseguite in risposta a richieste di scrittura o lettura. Puoi suddividere questa metrica in base al risultato della richiesta (CONSENTI, NEGA o ERRORE).

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

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