Profiler-Befehl für Firebase Realtime Database
Verwenden Sie den folgenden Befehl, um einen Bericht zur Geschwindigkeit und Bandbreitennutzung für Vorgänge in Ihrer Realtime Database-Instanz zu erstellen:
firebase database:profile
Optionen für Meldungen | Beschreibung |
---|---|
-h, --help |
Informationen zur Ausgabenutzung. |
-o, --output FILENAME |
Speichert die Ausgabe in der angegebenen Datei. |
-i, --input FILENAME |
Der Bericht wird anhand der angegebenen Datei anstelle von Logs des Servers gestreamt. |
-d, --duration SECONDS |
Erfassen Sie Informationen zur Datenbanknutzung für die angegebene Anzahl von Sekunden. |
--raw |
Geben Sie die erfassten Rohdaten als durch Zeilenumbruch getrenntes JSON aus. |
Vorgangsarten
Gleichzeitige Verbindung
Dieser Vorgang spiegelt Echtzeitverbindungen zur Datenbank wider, z. B. wenn ein neuer Client eine Verbindung über ein SDK herstellt. RESTful-Verbindungen werden bei Vorgängen für gleichzeitige Verbindungen nicht widergespiegelt.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
gleichzeitige Trennung
Gleichzeitige Trennungen spiegeln eine Verbindung wider, die von der Datenbank getrennt wurde, z. B. wenn ein Client die Verbindung trennt oder abmeldet.
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
Schreibanfragen von Echtzeitverbindungen. Beispiel: set()
- und push()
-Vorgänge für Webclients. Löschanfragen werden ebenfalls als realtime-write
-Vorgänge gezählt und spiegeln Schreibvorgänge mit einem Wert von 0 Byte wider.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
realtime-transaction
Dieser Vorgangstyp umfasst Transaktionen, die über Echtzeitverbindungen durchgeführt wurden. Wiederholte Transaktionen können das Ergebnis von fehlgeschlagenen Versuchen und Wiederholungen sein.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
Echtzeit-Update
Diese Echtzeitvorgänge für Aktualisierungen spiegeln übermäßige Anzahl bestimmter Daten wider, nicht die allgemeineren Schreibvorgänge in realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
listener-listen
Diese Vorgänge spiegeln die ursprüngliche Anfrage nach Daten an einem bestimmten Standort von einem Client wider. Zum Beispiel die Methoden on()
oder once()
für Webclients.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
Hörer-Broadcast
Dieser Vorgang umfasst die Daten, die vom Server an alle Clients gesendet werden, die nach jedem Schreib- und Aktualisierungsvorgang an einem bestimmten Standort überwachen. Die Änderung an den Daten führt zu einem Broadcast-Vorgang. Wenn keine Clients überwacht werden, sehen Sie möglicherweise 0 Aktualisierungen.
{ "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
Diese Vorgänge spiegeln Überwachungsclients wider, die das Überwachen der Trennmethoden beenden oder beenden (z. B. off()
für Web oder removeAllObservers
für iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
Rest-Read
GET
-Anfragen über die REST API
{ "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
PUT
- und POST
-Anfragen über die REST API.
DELETE
-Anfragen spiegeln rest-write
-Vorgänge mit 0 Byte wider.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
Rest-Transaktion
Verwenden Sie für transaktionsähnliches Verhalten bedingte Anfragen.
Der Vorgang rest-transaction
erfasst Anfragen mit den Headern Etag
oder if-match
.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-Update
Aktualisierungen über die REST API spiegeln PATCH
-Anfragen wider.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
Diese Vorgänge spiegeln das Hinzufügen von onDisconnect
-Listenern für Schreibvorgänge wider. Beispiel: Sie verwenden onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
Diese Vorgänge spiegeln das Hinzufügen von onDisconnect
-Listenern zum Aktualisieren von Vorgängen wider. Beispiel: Sie verwenden onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-cancel
Diese Vorgänge spiegeln das Entfernen der onVerbindungs-Listener wider.
Beispiel: Sie verwenden onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
Diese Vorgänge spiegeln das Auslösen von onDisconnect
-Listenern wider.
Wenn die Verbindung eines Realtime-Clients getrennt wird, nachdem mindestens ein onDisconnect
-Listener hinzugefügt wurde, zeichnet der Profiler einen einzelnen run-on-disconnect
-Vorgang auf, um die aggregierten Byte und Zeit aller ausgelösten onDisconnect
-Listener widerzuspiegeln.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }