Ir para o console
Teste o Cloud Firestore: conheça o banco de dados escalonável e flexível do Firebase e do Google Cloud Platform. Saiba mais sobre o Cloud Firestore.

Criar perfil do seu banco de dados

Avalie o desempenho do seu Firebase Realtime Database com a ferramenta de criação de perfil de banco de dados incorporada à Firebase CLI. Essa ferramenta registra toda a atividade no seu banco de dados durante um determinado período e gera um relatório detalhado. Use esse relatório para resolver problemas relacionados ao desempenho do banco de dados, identifique áreas problemáticas e reduza consultas não indexadas.

Criar um perfil

  1. Antes de criar o perfil do seu Firebase Realtime Database, verifique se você está usando a versão mais recente da Firebase CLI e se inicializou o Realtime Database com o banco de dados e o projeto para os quais quer criar um perfil. Você precisa ser um editor ou proprietário desse projeto para criar o perfil.

  2. Inicie a criação do perfil do seu banco de dados com o seguinte comando:

    firebase database:profile
    A ferramenta de criação de perfil exibe uma mensagem de status enquanto grava as operações do seu banco de dados e cria o perfil.

  3. Pressione Enter para completar o perfil e exibir os resultados.

Interpretar seus resultados

A ferramenta de criação de perfil agrega os dados coletados sobre as operações do banco de dados e exibe os resultados em três categorias principais: velocidade, largura de banda e consultas não indexadas.

Velocidade

O relatório "Velocidade" mede o tempo de resposta do servidor (em milésimos de segundo) para cada tipo de operação. No entanto, é possível que a velocidade medida nesse relatório não reflita a velocidade da experiência dos usuários finais. Diferentes fatores, incluindo condições de rede, podem aumentar a latência para o cliente.

O relatório "Velocidade" inclui as seguintes propriedades:

  • Caminho: o caminho no banco de dados onde as operações ocorreram. Se há mais de 25 nodes filho, a ferramenta de criação de perfil os aglutina em um caminho pai e adiciona o marcador $wildcard. Uma barra / representa o diretório raiz do banco de dados no relatório.
  • Contagem: o número de operações que ocorreram em um determinado caminho.
  • Média: o tempo médio que o servidor leva para processar um tipo específico de operação nesse caminho.
  • Permissão negada: o número de operações em determinado caminho que foram bloqueadas pelas regras do Firebase Database no banco de dados.
Relatório "Velocidade" por tipo de operação
Velocidade de leitura O tempo de resposta do servidor com relação às solicitações de leitura dos dados no banco de dados enviadas pelo cliente.
Velocidade de gravação O tempo de resposta do servidor com relação às solicitações de gravação dos dados no banco de dados enviadas pelo cliente.
Velocidade de transmissão

A quantidade de tempo que o servidor leva para distribuir dados aos clientes que detectam um determinado caminho para atualizações em tempo real.

A propriedade Contagem no relatório "Velocidade de transmissão" inclui a quantidade de transmissões emitidas e não a quantidade de clientes que receberam a informação. Por exemplo, se 10 clientes estiverem detectando um determinado caminho e o servidor transmitir uma atualização para todos os clientes, a contagem de transmissão reflete apenas 1 transmissão, mesmo que os 10 clientes tenham recebido os dados.

A propriedade Permissão negada não está incluída no relatório "Velocidade de transmissão".

Largura de banda

O relatório "Largura de banda" exibe informações sobre a quantidade de dados que o seu banco de dados consome em todas as operações de entrada e saída. No entanto, esse relatório não deve ser usado para estimar o faturamento, pois ele não inclui a largura de banda usada em outras operações, como criação de perfil do banco de dados. O relatório "Largura de banda" estima o tamanho aproximado do payload dos dados consumidos pelas operações de leitura, gravação e transmissão originadas no seu banco de dados e destinadas a ele. Essa ferramenta mede o desempenho e não faz estimativas do faturamento.

O relatório "Largura de banda" inclui as seguintes propriedades:

  • Caminho: o caminho no banco de dados onde as operações ocorreram. Se há mais de 25 nodes filho, a ferramenta de criação de perfil os aglutina em um caminho pai.

  • Total: o total de bytes de entrada ou de saída utilizados em todas as operações em um determinado caminho.

  • Contagem: o número de operações que ocorreram em um determinado caminho.

  • Média: o número médio de bytes transferidos ou carregados nas operações em um determinado caminho (bytes/gravação ou bytes/leitura).

Relatório "Largura de banda"
Bytes recebidos Dados consumidos por meio de operações de leitura e transmissão enviadas pelos SDKs do cliente e pela API REST.
Bytes enviados Dados consumidos por meio de solicitações de gravação destinadas ao servidor do banco de dados. Os dados excluídos aparecem como gravação com 0 bytes na entrada.

Consultas não indexadas

As consultas não indexadas podem ser caras, porque os clientes transferem todos os dados para um local e depois executam consultas nele. Isso usa mais largura de banda do que o necessário. Resolva o máximo de consultas não indexadas para otimizar o desempenho do seu banco de dados.

O relatório "Consultas não indexadas" exibe as seguintes propriedades:

  • Caminho: o caminho no seu banco de dados onde as consultas não indexadas ocorreram.
  • Índice: a regra que você precisa adicionar para resolver as consultas não indexadas. Saiba mais sobre indexação em Como indexar seus dados.
  • Contagem: o número de consultas não indexadas que ocorreram em um determinado caminho.

Criação avançada de perfis

Para ver todas as operações realizadas pelo seu banco de dados, use a sinalização --raw ao criar o perfil do seu banco de dados, como descrito a seguir:

firebase database:profile --raw

A saída bruta também inclui informações do cliente para cada operação, como as strings userAgent e os endereços IP. Saiba mais sobre as diferentes operações realizadas no seu Firebase Realtime Database em Tipos de operações do Firebase Realtime Database.

Ferramenta de criação de perfil: não é um recurso para faturamento

Não use a ferramenta de criação de perfil para estimar o custo da largura de banda. Essa ferramenta fornece uma visão geral do desempenho do seu banco de dados para ajudar a monitorar operações e resolver problemas, e não faz estimativas do faturamento. Ela não detalha o tráfego de rede, apenas registra uma estimativa dos dados do aplicativo enviados nas respostas.

Veja a seguir alguns exemplos comuns de tráfego de rede faturado pelo Firebase que não são incluídos no seu perfil de banco de dados:

  • Sobrecarga de protocolo: é necessário um tráfego adicional entre o servidor e os clientes para estabelecer e manter uma sessão. Dependendo do protocolo subjacente, esse tráfego pode incluir: sobrecarga de protocolo em tempo real do Firebase Realtime Database, sobrecarga do WebSocket e sobrecarga do cabeçalho HTTP. Cada vez que uma conexão é estabelecida, essa sobrecarga, juntamente com qualquer sobrecarga de criptografia SSL, contribui para os custos de conexão. Normalmente, essa quantidade de largura de banda não é grande, mas ela pode ser substancial se os seus payloads forem pequenos ou se você fizer conexões frequentes e curtas.
  • Sobrecarga de criptografia SSL: há um custo associado à sobrecarga de criptografia SSL necessária para conexões seguras. Em média, esse custo é de aproximadamente 3,5 KB para o handshake inicial e de aproximadamente 40 B para cabeçalhos de registro de TLS em cada mensagem de saída. Para a maioria dos apps, isso representa uma porcentagem pequena da sua fatura. No entanto, ela pode aumentar se seu caso específico precisar de muitos handshakes de SSL. Por exemplo, os dispositivos que não são compatíveis com tickets de sessão TLS podem precisar de vários handshakes de conexão SSL.

Leia mais sobre como entender e fazer estimativas da sua fatura.