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 }