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
}