Commande du profileur Firebase Realtime Database
Pour générer un rapport sur l'utilisation de la vitesse et de la bande passante pour les opérations dans votre Realtime Database, exécutez la commande suivante:
firebase database:profile
Options d'indicateur | Description |
---|---|
-h, --help |
Générez des informations d'utilisation. |
-o, --output FILENAME |
Enregistrez la sortie dans le fichier spécifié. |
-i, --input FILENAME |
Générez le rapport à partir du fichier spécifié au lieu de diffuser des journaux à partir du serveur. |
-d, --duration SECONDS |
Collecte des informations sur l'utilisation de la base de données pendant le nombre de secondes spécifié. |
--raw |
Générez les statistiques brutes collectées au format JSON délimité par un retour à la ligne. |
Types d'opération
connexion simultanée
Cette opération reflète les connexions en temps réel à la base de données (par exemple, lorsqu'un nouveau client se connecte via un SDK). Les connexions RESTful ne sont pas reflétées dans les opérations de connexion simultanée.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent-disconnect
Les déconnexions simultanées reflètent une connexion qui s'est déconnectée de la base de données (par exemple, lorsqu'un client se déconnecte ou se déconnecte).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
Écrire des requêtes à partir de connexions en temps réel Par exemple, les opérations set()
et push()
pour les clients Web. Les demandes de suppression sont aussi comptabilisées comme realtime-write
et reflètent des écritures de 0 octet.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
transaction en temps réel
Ce type d'opération inclut les transactions effectuées via des connexions en temps réel. Les transactions répétées peuvent être le résultat d'échecs et de nouvelles tentatives.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
mise à jour en temps réel
Ces opérations en temps réel pour les mises à jour reflètent les écrasements de données spécifiques, et non les opérations d'écriture plus générales dans realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
écouter-écouter
Ces opérations reflètent la demande initiale de données à un emplacement spécifique par un client. Par exemple, les méthodes on()
ou once()
pour les clients Web.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
listener-broadcast
Cette opération concerne les données envoyées du serveur à tous les clients qui écoutent à un emplacement donné après chaque opération d'écriture et de mise à jour. La la modification des données entraîne une opération de diffusion. Toutefois, il est possible que vous n'obteniez aucune mise à jour si aucun client n'écoute.
{ "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
Ces opérations reflètent les clients d'écoute qui se déconnectent ou arrêtent d'écouter via les méthodes de détachement (par exemple, off()
pour le Web ou removeAllObservers
pour iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
rest-read
Requêtes GET
via 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
PUT
et
Requêtes POST
via l'API REST
API.
Les requêtes DELETE
reflètent les opérations rest-write
de 0 octets.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
rest-transaction
Pour un comportement de type transaction, utilisez
Requêtes conditionnelles.
L'opération rest-transaction
capture les requêtes à l'aide d'en-têtes Etag
ou if-match
.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-update
Les mises à jour effectuées via l'API REST reflètent les requêtes PATCH
.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
lors de la déconnexion
Ces opérations reflètent l'ajout d'écouteurs onDisconnect
aux opérations d'écriture. Par exemple, lorsque vous utilisez onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
Ces opérations reflètent l'ajout d'écouteurs onDisconnect
à mettre à jour
opérations. Par exemple, lorsque vous utilisez onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
lors de la déconnexion de l'appareil
Ces opérations reflètent la suppression des écouteurs onDéconnecter.
Par exemple, lorsque vous utilisez onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
Exécuter lors de la déconnexion
Ces opérations reflètent le déclenchement des écouteurs onDisconnect
.
Lorsqu'un client en temps réel se déconnecte après avoir ajouté au moins un écouteur onDisconnect
, le profileur enregistre une seule opération run-on-disconnect
pour refléter les octets et le temps agrégés de tous les écouteurs onDisconnect
déclenchés.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }