Comando do criador de perfil Firebase Realtime Database
Para gerar um relatório sobre a velocidade e o uso de largura de banda das operações na sua instância do Realtime Database, use o seguinte comando:
firebase database:profile
Opções de sinalização | Descrição |
---|---|
-h, --help |
Gerar informações de uso |
-o, --output FILENAME |
Salvar o resultado no arquivo especificado |
-i, --input FILENAME |
Gerar o relatório com base no arquivo especificado em vez de registros de streams do servidor |
-d, --duration SECONDS |
Coletar informações de uso do banco de dados pelo número especificado de segundos |
--raw |
Gerar as estatísticas brutas coletadas como um arquivo JSON delimitado por novas linhas |
Tipos de operação
concurrent-connect
Esta operação reflete conexões em tempo real com o banco de dados (por exemplo, quando um cliente novo se conecta usando um SDK). As conexões RESTful não são refletidas nas operações concurrent-connect.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent-disconnect
Operações concurrent-disconnect refletem uma conexão desconectada do banco de dados (por exemplo, quando um cliente se desconecta ou cancela a assinatura).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
Solicitações de gravação de conexões em tempo real. Por exemplo, operações set()
e push()
para clientes da Web. As solicitações de exclusão também são contadas como operações de realtime-write
e refletem gravações 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 operação inclui transações feitas durante conexões em tempo real. As transações de repetição podem ser o resultado de falhas em tentativas e novas tentativas.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
realtime-update
Estas operações em tempo real para atualizações refletem substituições de dados específicos, e não as operações de gravação mais gerais em realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
listener-listen
Estas operações refletem a solicitação inicial de dados em um local específico de um cliente. Por exemplo, os métodos on()
ou once()
para clientes da Web.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
listener-broadcast
Esta operação abrange os dados enviados do servidor para todos os clientes que estejam detectando em um determinado local após cada operação de gravação e atualização. A mudança nos dados leva a uma operação de transmissão. No entanto, você pode ver 0 atualizações se não houver nenhum cliente detectando.
{ "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 operações refletem a atenção voltada a clientes que cancelam ou a interrupção da atenção usando métodos de separação (por exemplo, off()
para a Web ou removeAllObservers
para iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
rest-read
Solicitações GET
realizadas pela 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
Solicitações PUT
e POST
realizadas pela API
REST.
As solicitações DELETE
refletem as operações rest-write
de 0 bytes.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
rest-transaction
Para comportamento semelhante a transações,
use as solicitações condicionais.
A operação rest-transaction
captura solicitações usando cabeçalhos Etag
ou if-match
.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-update
As atualizações feitas com a API REST refletem as solicitações PATCH
.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
Essas operações refletem a adição de listeners onDisconnect
para a gravação das operações. Por exemplo, ao usar onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
Essas operações refletem a adição de listeners onDisconnect
para atualização delas. Por exemplo, ao usar onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-cancel
Essas operações refletem a remoção de listeners onDisconnect.
Por exemplo, ao usar onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
Essas operações refletem o acionamento de listeners onDisconnect
.
Quando um cliente em tempo real se desconecta após adicionar pelo menos um listener onDisconnect
, o criador de perfil registra uma única operação run-on-disconnect
para refletir o tempo e os bytes totais de todos os listeners onDisconnect
acionados.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }