Comando del profiler del database Firebase Realtime
Per generare un report sull'utilizzo della velocità e della larghezza di banda per le operazioni nell'istanza del Realtime Database, utilizza il comando seguente:
firebase database:profile
Opzioni di segnalazione | Descrizione |
---|---|
-h, --help | Informazioni sull'utilizzo dell'output. |
-o, --output FILENAME | Salva l'output nel file specificato. |
-i, --input FILENAME | Genera il report in base al file specificato anziché ai registri di flusso dal server. |
-d, --duration SECONDS | Raccogli le informazioni sull'utilizzo del database per il numero di secondi specificato. |
--raw | Visualizza le statistiche grezze raccolte come JSON delimitato da una nuova riga. |
Tipi di operazioni
connessione simultanea
Questa operazione riflette le connessioni in tempo reale al database (ad esempio, quando un nuovo client si connette tramite un SDK). Le connessioni RESTful non si riflettono nelle operazioni di connessione simultanea.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
disconnessione simultanea
Le disconnessioni simultanee riflettono una connessione che si è disconnessa dal database (ad esempio, quando un client si disconnette o si disconnette).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
scrittura in tempo reale
Scrivi richieste da connessioni in tempo reale. Ad esempio, le operazioni set()
e push()
per i client Web. Anche le richieste di eliminazione vengono conteggiate come operazioni realtime-write
e riflettono scritture di 0 byte.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
transazione in tempo reale
Questo tipo di operazione include le transazioni condotte tramite connessioni in tempo reale. Le transazioni ripetute possono essere il risultato di tentativi e tentativi falliti.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
aggiornamento in tempo reale
Queste operazioni in tempo reale per gli aggiornamenti riflettono gli overwite di dati specifici, non le operazioni di scrittura più generali in realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
ascoltatore-ascolta
Queste operazioni riflettono la richiesta iniziale di dati in una posizione specifica da parte di un client. Ad esempio, i metodi on()
o once()
per i client Web.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
trasmissione-ascoltatore
Questa operazione copre i dati inviati dal server a tutti i client in ascolto in una determinata posizione dopo ogni operazione di scrittura e aggiornamento. La modifica dei dati comporta un'operazione di broadcast. Tuttavia, potresti visualizzare 0 aggiornamenti se non sono presenti client in ascolto.
{ "bytes": 56, // Total bytes sent across clients "clientsUpdated": 3, // This may be 0 if no clients are listening "millis": 17, "name": "listener-broadcast", "path": [ "baz", "mar" ], "timestamp": 1484775969928 }
ascoltatore-nonascoltare
Queste operazioni riflettono i client in ascolto che si disconnettono o interrompono l'ascolto tramite i metodi di disconnessione (ad esempio, off()
per il Web removeAllObservers
per iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
resto-leggi
GET
richieste tramite l'API REST.
{ "allowed": true, "bytes": 348, // This would be 0 if the read data was null "millis": 26, "name": "rest-read", "path": [], "querySet": [ { "default": true, "endIndexValue": "[MAX_NAME]", "equality": false, "index": {}, "limit": null, "range": false, "simpleLimit": false, "startIndexValue": "[MIN_NAME]", "viewFrom": null } ], "timestamp": 1484775747416 }
resto-scrivi
Richieste PUT
e POST
tramite l'API REST. Le richieste DELETE
riflettono operazioni rest-write
di 0 byte.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
transazione di resto
Per un comportamento simile a una transazione, utilizza le richieste condizionali . L'operazione rest-transaction
acquisisce le richieste utilizzando le intestazioni Etag
o if-match
.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
resto-aggiornamento
Gli aggiornamenti tramite l'API REST riflettono le richieste PATCH
.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
Queste operazioni riflettono l'aggiunta di ascoltatori onDisconnect
alle operazioni di scrittura. Ad esempio, quando usi onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
aggiornamento alla disconnessione
Queste operazioni riflettono l'aggiunta di ascoltatori onDisconnect
alle operazioni di aggiornamento. Ad esempio, quando usi onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
alla disconnessione-annulla
Queste operazioni riflettono la rimozione dei listener onDisconnect. Ad esempio, quando usi onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
esecuzione alla disconnessione
Queste operazioni riflettono l'attivazione dei listener onDisconnect
. Quando un client in tempo reale si disconnette dopo aver aggiunto almeno un ascoltatore onDisconnect
, il profiler registra una singola operazione run-on-disconnect
per riflettere i byte e l'ora aggregati di tutti i ascoltatori onDisconnect
attivati.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }