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
}