Comando del profiler Firebase Realtime Database
a generare un report sulla velocità e la larghezza di banda utilizzata per le operazioni Realtime Database, usa il comando seguente:
firebase database:profile
Opzioni di segnalazione | Descrizione |
---|---|
-h, --help |
Mostra le 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 log del flusso dal server. |
-d, --duration SECONDS |
Raccogli informazioni sull'utilizzo del database per il numero di secondi specificato. |
--raw |
Mostra le statistiche non elaborate raccolte come JSON delimitato da 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 vengono riportate nelle operazioni di connessione simultanea.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
disconnessione-contemporanea
Le disconnessioni simultanee riflettono una connessione disconnessa dal database (ad esempio quando un client si disconnette o effettua la disconnessione).
{ "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 }
realtime-transaction
Questo tipo di operazione include le transazioni effettuate tramite connessioni in tempo reale. Le transazioni ripetute possono essere il risultato di tentativi e riprove non riusciti.
{ "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 la sovrascrittura di dati specifici, non
più generali saranno le operazioni di scrittura in realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
ascolta-ascoltatore
Queste operazioni riflettono la richiesta iniziale di dati in una località 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 riguarda i dati inviati dal server a tutti i client che ascoltano in una determinata posizione dopo ogni operazione di scrittura e aggiornamento. La ai dati porta a un'operazione di trasmissione. Tuttavia, potresti non vedere aggiornamenti se non ci sono 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 }
listener-unlisten
Queste operazioni riflettono i client in ascolto che escono o interrompono l'ascolto tramite i metodi di scollegamento (ad esempio off()
per il web o removeAllObservers
per iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
riprendi leggi
Richieste GET
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 }
rest-write
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 }
rest-transaction
Per un comportamento simile a una transazione, utilizza
richieste condizionali.
L'operazione rest-transaction
acquisisce le richieste utilizzando Etag
o if-match
intestazioni.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-update
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 onDisconnect
ascoltatori 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 }
on-disconnect-update
Queste operazioni riflettono l'aggiunta di onDisconnect
ascoltatori 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 onDisconnetti.
Ad esempio, quando usi onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
Queste operazioni riflettono l'attivazione dei listener onDisconnect
.
Quando un client in tempo reale si disconnette dopo aver aggiunto almeno un onDisconnect
listener, il profiler registra una singola operazione run-on-disconnect
in modo da riflettere i byte e il tempo aggregati di tutti i listener onDisconnect
attivata.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }