Firebase Realtime Database-Profiler-Befehl
Um einen Bericht über die Geschwindigkeit und Bandbreitennutzung für Vorgänge in Ihrem Realtime Database verwenden Sie den folgenden Befehl:
firebase database:profile
Flaggenoptionen | Beschreibung |
---|---|
-h, --help |
Nutzungsinformationen ausgeben. |
-o, --output FILENAME |
Speichert die Ausgabe in der angegebenen Datei. |
-i, --input FILENAME |
Der Bericht wird anhand der angegebenen Datei statt anhand von Streamprotokollen vom Server erstellt. |
-d, --duration SECONDS |
Es werden Datenbanknutzungsdaten für die angegebene Anzahl von Sekunden erfasst. |
--raw |
Geben Sie die erfassten Rohstatistiken als durch Zeilenumbruch getrenntes JSON aus. |
Vorgangsarten
gleichzeitige Verbindung
Dieser Vorgang spiegelt Echtzeitverbindungen zur Datenbank wider, z. B. wenn ein neuer Client über ein SDK eine Verbindung herstellt. RESTful-Verbindungen werden nicht in für gleichzeitige Verbindungen.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
gleichzeitiges Aufheben der Verbindung
Gleichzeitige Trennungen spiegeln eine Verbindung wider, die vom (z. B. wenn ein Kunde die Verbindung trennt oder sich abmeldet).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
Schreiben in Echtzeit
Schreibanfragen von Realtime-Verbindungen. Beispiel: set()
- und push()
-Vorgänge für Webclients. Löschanfragen werden ebenfalls als realtime-write
-Vorgänge gezählt und entsprechen Schreibvorgängen mit 0 Byte.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
Echtzeit-Transaktion
Dieser Vorgangstyp umfasst Transaktionen, die über Realtime-Verbindungen ausgeführt wurden. Wiederholte Transaktionen können das Ergebnis fehlgeschlagener Versuche 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 Überschreibungen bestimmter Daten wider, nicht die allgemeineren Schreibvorgänge in realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
Zuhörer
Diese Operationen spiegeln die ursprüngliche Anforderung von Daten an einem bestimmten Standort von
Kundschaft. Beispiel: die Methode on()
oder once()
für Webclients.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
Listener-Übertragung
Dieser Vorgang umfasst die Daten, die nach jedem Schreib- und Aktualisierungsvorgang vom Server an alle Clients gesendet werden, die an einem bestimmten Ort lauschen. Die Änderung an den Daten führt zu einem Broadcastvorgang. Es kann jedoch sein, dass Sie keine Updates sehen. wenn keine Kundschaft zuhört.
{ "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 stehen für das Zuhören von Clients, die das Zuhören genehmigen oder beenden.
mithilfe der Trennungsmethoden (z. B. off()
für das Web oder removeAllObservers
)
für iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
Ausruhen
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 wider
rest-write
-Vorgänge mit 0 Byte.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
rest-transaction
Verwenden Sie für transaktionsähnliches Verhalten
bedingte Anfragen.
Der Vorgang rest-transaction
erfasst Anfragen mit Etag
- oder if-match
-Headern.
{ "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 }
Beim Trennen
Diese Vorgänge spiegeln das Hinzufügen von onDisconnect
Zuhörern zu Schreibvorgängen wider. Wenn Sie beispielsweise onDisconnect().setValue()
verwenden.
{ "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 für Aktualisierungsvorgänge wider. Zum Beispiel, wenn Sie onDisconnect().updateChildren()
verwenden.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-cancel
Diese Vorgänge spiegeln die Entfernung von onVerbindung-Listenern wider.
Zum Beispiel, wenn Sie onDisconnect().set().cancel()
verwenden.
{ "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 ein Echtzeit-Client die Verbindung trennt, nachdem mindestens ein onDisconnect
-Listener hinzugefügt wurde, zeichnet der Profiler einen einzelnen run-on-disconnect
-Vorgang auf, um die aggregierten Bytes und die Zeit aller ausgelösten onDisconnect
-Listener widerzuspiegeln.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }