Comando do criador de perfil do Firebase Realtime Database
Para gerar um relatório de velocidade e uso de largura de banda para operações na instância do Realtime Database, use o seguinte comando:
firebase database:profile
Opções de sinalização | Descrição |
---|---|
-h, --help | Informações de uso de saída. |
-o, --output FILENAME | Salve a saída no arquivo especificado. |
-i, --input FILENAME | Gere o relatório com base no arquivo especificado em vez de transmitir logs do servidor. |
-d, --duration SECONDS | Colete informações de uso do banco de dados durante o número especificado de segundos. |
--raw | Produza as estatísticas brutas coletadas como JSON delimitado por nova linha. |
Tipos de operação
conexão simultânea
Esta operação reflete conexões em tempo real com o banco de dados (por exemplo, quando um novo cliente se conecta por meio de um SDK). As conexões RESTful não são refletidas nas operações de conexão simultânea.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
desconexão simultânea
As desconexões simultâneas refletem uma conexão que foi desconectada do banco de dados (por exemplo, quando um cliente se desconecta ou desconecta).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
gravação em tempo real
Escreva solicitações de conexões em tempo real. Por exemplo, operações set()
e push()
para clientes web. As solicitações de exclusão também são contadas como operações 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 }
transação em tempo real
Este tipo de operação inclui transações realizadas através de conexões em tempo real. Transações repetidas podem ser o resultado de tentativas e tentativas malsucedidas.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
atualização em tempo real
Essas operações em tempo real para atualizações refletem a substituição 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 }
ouvinte-ouvir
Essas operações refletem a solicitação inicial de dados de um cliente em um local específico. Por exemplo, os métodos on()
ou once()
para clientes web.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
transmissão pelo ouvinte
Esta operação cobre os dados enviados do servidor para todo e qualquer cliente que esteja escutando em um determinado local após cada operação de gravação e atualização. A alteração nos dados leva a uma operação de transmissão. No entanto, você poderá ver 0 atualizações se não houver nenhum cliente escutando.
{ "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 }
ouvinte-não ouvir
Essas operações refletem clientes de escuta que desconectam ou param de escutar por meio dos métodos de desanexação (por exemplo, off()
para web ou removeAllObservers
para iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
descansar-ler
Solicitações GET
por meio da 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 }
resto-escrever
Solicitações PUT
e POST
por meio da API REST. As solicitações DELETE
refletem operações rest-write
de 0 bytes.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
transação restante
Para comportamento semelhante a uma transação, use Requests 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 }
atualização de descanso
As atualizações por meio da API REST refletem as solicitações PATCH
.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
ligado-desconectado
Essas operações refletem a adição de ouvintes onDisconnect
às operações de gravação. Por exemplo, quando você usa onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
atualização ao desconectar
Essas operações refletem a adição de ouvintes onDisconnect
para atualizar operações. Por exemplo, quando você usa onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
ao desligar-cancelar
Essas operações refletem a remoção dos ouvintes onDisconnect. Por exemplo, quando você usa onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
executar ao desconectar
Essas operações refletem o acionamento dos ouvintes onDisconnect
. Quando um cliente em tempo real se desconecta após adicionar pelo menos um ouvinte onDisconnect
, o criador de perfil registra uma única operação run-on-disconnect
para refletir os bytes agregados e o tempo de todos os ouvintes onDisconnect
acionados.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }