Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Perfil do seu banco de dados

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Meça o desempenho de seu Firebase Realtime Database com a ferramenta de criação de perfil de banco de dados, integrada à Firebase CLI . A ferramenta de criação de perfil registra toda a atividade em seu banco de dados durante um determinado período de tempo e, em seguida, gera um relatório detalhado. Use o relatório detalhado para solucionar problemas com o desempenho do seu banco de dados, identificar áreas problemáticas e reduzir consultas não indexadas.

Crie um perfil

  1. Antes de começar a criar o perfil do Firebase Realtime Database, verifique se você está usando a versão mais recente da Firebase CLI e se a inicializou para o banco de dados e o projeto para o qual deseja criar o perfil. Observe que você deve ser um editor ou proprietário desse projeto para criar um perfil.

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

    firebase database:profile
    O criador de perfil exibe uma mensagem de status enquanto registra as operações de seu banco de dados e constrói o perfil.

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

Interprete seus resultados

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

Velocidade

O Speed ​​Report mede o tempo de resposta do servidor (em milissegundos) para cada tipo de operação. No entanto, a velocidade medida no relatório de velocidade pode não refletir a experiência de velocidade dos usuários finais. Diferentes fatores, incluindo condições de rede, podem adicionar latência no lado do cliente.

O relatório de velocidade inclui as seguintes propriedades:

  • Path: O caminho em seu banco de dados onde as operações ocorreram. Se houver mais de 25 nós filhos, a ferramenta de criação de perfil os recolhe em um caminho pai e adiciona um marcador $wildcard . Você pode ver o diretório raiz do seu banco de dados no relatório, representado por uma barra / .
  • Contagem: o número de operações que ocorreram no caminho especificado.
  • Velocidade Média de Execução: O tempo médio que o servidor leva para executar a lógica de negócios necessária para lidar com o tipo de operação específico naquele caminho. O intervalo de tempo medido aqui começa depois daquele medido pelo "Tempo Médio Pendente" descrito abaixo.
  • Tempo médio de espera: o tempo médio que as solicitações ficam na fila antes de serem executadas. Esse atraso é comum a todas as solicitações iniciadas pelo cliente. A latência total da solicitação do lado do servidor é aproximadamente a soma do tempo pendente dessa solicitação e da velocidade de execução.
  • Permissão negada: o número de operações no caminho fornecido que foram bloqueadas pelas regras do banco de dados do Firebase em seu banco de dados.
Relatório de velocidade por tipo de operação
Velocidade de execução de leitura O tempo de resposta do servidor para solicitações do cliente para ler dados do banco de dados. O tempo de execução da leitura geralmente aumenta com a quantidade de dados que estão sendo lidos, mas mesmo algumas leituras pequenas também podem ser atrasadas pela pré-busca do cache.
Velocidade de Execução de Gravação O tempo de resposta do servidor para solicitações do cliente para gravar dados no banco de dados. Escalas de tempo de execução de gravação com a quantidade de dados sendo gravados.
Conectar velocidade de execução O tempo de resposta do servidor para solicitações a serem estabelecidas para clientes de banco de dados. A latência para solicitações de conexão é dominada pela contabilidade do lado do servidor na memória relacionada ao gerenciamento de conexão.
Velocidade de Execução da Transmissão

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

A propriedade Count no Broadcast Speed ​​Report agrega o número de broadcasts ocorridos, não o número de clientes que receberam as informações. Por exemplo, se 10 clientes estiverem escutando em um determinado caminho e o servidor transmitir uma atualização para todos os 10 clientes, a contagem de transmissão refletirá apenas 1 transmissão, mesmo que 10 clientes tenham recebido os dados.

A propriedade Permission Denied não está incluída no relatório Broadcast Speed.

largura de banda

O relatório de largura de banda fornece informações sobre a quantidade de dados que seu banco de dados consome nas operações de entrada e saída. No entanto, você não deve usar o Relatório de largura de banda para estimar o faturamento, porque ele não inclui a largura de banda usada para outras operações, como a criação de perfil de seu banco de dados. O relatório de largura de banda estima aproximadamente o tamanho da carga útil dos dados consumidos pelas operações de leitura, gravação e transmissão de e para seu banco de dados. É uma ferramenta que mede o desempenho, não uma que prevê o faturamento.

O relatório de largura de banda inclui as seguintes propriedades:

  • Path: O caminho em seu banco de dados onde as operações ocorreram. Se houver mais de 25 nós filhos, a ferramenta de criação de perfil os recolherá em um caminho pai.

  • Total: o total de bytes de entrada ou saída usados ​​em todas as operações no caminho especificado.

  • Contagem: o número de operações que ocorreram no caminho especificado.

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

Relatório de largura de banda
Bytes baixados Dados consumidos por meio de operações de leitura e transmissão enviadas por meio dos SDKs do cliente e da API REST.
Bytes carregados Dados consumidos por meio de solicitações de gravação que chegam ao servidor de banco de dados. As exclusões aparecem como gravações com 0 bytes na entrada.

Consultas não indexadas

Consultas não indexadas podem ser caras, porque os clientes baixam todos os dados em um local e realizam consultas nele. Isso consome mais largura de banda do que o necessário. Resolva quantas consultas não indexadas puder para otimizar o desempenho do seu banco de dados.

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

  • Caminho: o caminho em seu banco de dados onde ocorreram as consultas não indexadas.
  • Índice: A regra que você deve adicionar para resolver as consultas não indexadas. Saiba mais sobre indexação em Indexar seus dados .
  • Contagem: o número de consultas não indexadas que ocorreram no caminho especificado.

Criação de perfil avançada

Para ver todas as operações que seu banco de dados está processando, use o sinalizador --raw ao criar o perfil de seu banco de dados, da seguinte forma:

firebase database:profile --raw

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

A ferramenta de criação de perfil: não é uma ferramenta de cobrança

Não use a ferramenta de criação de perfil para estimar o custo da largura de banda. A ferramenta de criação de perfil destina-se a fornecer uma visão geral do desempenho de seu banco de dados, para ajudá-lo a monitorar operações e solucionar problemas, não para estimar o faturamento. Ele não contabiliza o tráfego de rede, apenas registra uma estimativa dos dados do aplicativo enviados nas respostas.

A seguir estão alguns exemplos comuns de tráfego de rede cobrado pelo Firebase que não são cobertos em seu perfil de banco de dados:

  • Sobrecarga de protocolo: algum tráfego adicional entre o servidor e os clientes é necessário para estabelecer e manter uma sessão. Dependendo do protocolo subjacente, esse tráfego pode incluir: sobrecarga do 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, combinada com qualquer sobrecarga de criptografia SSL, contribui para os custos de conexão. Embora isso normalmente não seja uma grande quantidade de largura de banda, pode ser substancial se suas cargas úteis forem pequenas ou se você fizer conexões curtas e frequentes.
  • 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 aproximadamente 40 B para cabeçalhos de registro TLS em cada mensagem de saída. Para a maioria dos aplicativos, essa é uma pequena porcentagem da sua conta. No entanto, isso pode se tornar uma grande porcentagem se o seu caso específico exigir muitos handshakes SSL. Por exemplo, dispositivos que não oferecem suporte a tíquetes de sessão TLS podem exigir um grande número de handshakes de conexão SSL.

Leia mais sobre como entender e estimar sua fatura .