Comando del generador de perfiles de Firebase Realtime Database
Para generar un informe de la velocidad y el uso del ancho de banda de las operaciones de tu instancia de Realtime Database, usa el siguiente comando:
firebase database:profile
| Opciones de marcas | Descripción |
|---|---|
-h, --help |
Proporciona información sobre el uso. |
-o, --output FILENAME |
Guarda el resultado en el archivo especificado. |
-i, --input FILENAME |
Genera el informe a partir del archivo especificado en lugar de los registros de transmisión provenientes del servidor. |
-d, --duration SECONDS |
Recopila información sobre el uso de la base de datos para la cantidad de segundos especificada. |
--raw |
Proporciona las estadísticas sin procesar que se recopilaron en un archivo JSON delimitado por saltos de línea. |
Tipos de operación
concurrent-connect
Esta operación refleja conexiones en tiempo real a la base de datos (por ejemplo, cuando un cliente nuevo se conecta a través de un SDK). Las conexiones RESTful no se reflejan en las operaciones de concurrent-connect.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent-disconnect
Las operaciones concurrent-disconnect reflejan una conexión que se desconectó desde la base de datos (por ejemplo, cuando un cliente se desconecta o se cierra).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
Solicitudes de escritura desde conexiones en tiempo real. Por ejemplo, las operaciones set() y push() para clientes web. Las solicitudes de eliminación también se cuentan como operaciones realtime-write y reflejan escrituras de 0 bytes.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
realtime-transaction
Este tipo de operación incluye transacciones que se ejecutan a través de conexiones en tiempo real. Las transacciones repetidas pueden ser resultado de intentos fallidos o reiterados.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
realtime-update
Estas operaciones en tiempo real para las actualizaciones reflejan sobrescrituras de datos específicos, no las operaciones de escritura más generales de realtime-write.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
listener-listen
Estas operaciones reflejan la solicitud inicial de datos en una ubicación específica desde un cliente. Por ejemplo, los métodos on() o once() para clientes web.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
listener-broadcast
Esta operación abarca los datos enviados desde el servidor a todos y cada uno de los clientes que están escuchando en una ubicación determinada después de cada operación de escritura y actualización. El cambio en los datos genera una operación de transmisión. Sin embargo, es posible que veas 0 actualizaciones si no hay clientes escuchando.
{ "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
Estas operaciones reflejan los clientes que escuchan y que se cierran o dejan de escuchar a través de los métodos de desconexión (por ejemplo, off() para Web o removeAllObservers para iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
rest-read
Solicitudes GET a través de la API de 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
Solicitudes PUT y POST a través de la API de REST.
Las solicitudes DELETE reflejan operaciones rest-write de 0 bytes.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
rest-transaction
Para comportamientos similares a transacciones, usa solicitudes condicionales.
La operación rest-transaction usa encabezados Etag o if-match para captar solicitudes.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-update
Las actualizaciones realizadas mediante la API de REST muestran las solicitudes PATCH.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
Estas operaciones reflejan la adición de objetos de escucha onDisconnect a las operaciones de escritura. Por ejemplo, cuando usas onDisconnect().setValue().
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
Estas operaciones reflejan la adición de objetos de escucha onDisconnect a las operaciones de actualización. Por ejemplo, cuando usas onDisconnect().updateChildren().
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-cancel
Estas operaciones reflejan la eliminación de los objetos de escucha onDisconnect.
Por ejemplo, cuando usas onDisconnect().set().cancel().
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
Estas operaciones reflejan la activación de los objetos de escucha onDisconnect.
Cuando un cliente de RealTime se desconecta después de agregar al menos un objeto de escucha onDisconnect, el generador de perfiles registra una sola operación run-on-disconnect para reflejar los bytes agregados y el tiempo de todos los objetos de escucha onDisconnect que se activaron.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }