Confira tudo que foi anunciado no Firebase Summit e veja como usar o Firebase para acelerar o desenvolvimento de apps e executar os aplicativos com confiança. Saiba mais

Monitorar o desempenho do banco de dados

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

Existem algumas maneiras diferentes de monitorar o desempenho do Firebase Realtime Database e detectar possíveis problemas em seu aplicativo. Observar a largura de banda e a carga de entrada e saída do seu aplicativo também pode lhe dar uma ideia do que esperar em sua conta. Além disso, se algo parecer errado, obter uma visão clara das operações do seu banco de dados pode ser uma ferramenta útil para a solução de problemas.

Esta página discute o monitoramento de desempenho do Realtime Database. Para monitoramento de uso, consulte Monitorar uso do banco de dados.

Use as ferramentas de monitoramento do Realtime Database

Você pode coletar dados sobre o desempenho do Realtime Database por meio de algumas ferramentas diferentes, dependendo do nível de granularidade necessário.

Use a ferramenta de criação de perfil do Realtime Database

A ferramenta Realtime Database profiler fornece uma visão geral em tempo real das operações de leitura/gravação em seu banco de dados. O relatório inclui informações sobre a velocidade e o tamanho do payload de cada operação, além de consultas não indexadas. No entanto, ele não inclui informações históricas ou estatísticas sobre sobrecarga de conexão e não deve ser usado para estimar os custos de cobrança .

Para saber mais sobre como usar a ferramenta de criação de perfil, consulte Criar perfil de seu banco de dados.

Use o console do Firebase

A guia Uso no console do Firebase oferece informações sobre conexões simultâneas com seu banco de dados, quantos dados você está armazenando, largura de banda de saída (incluindo sobrecarga de protocolo e criptografia) e carga do seu banco de dados em intervalos de 1 minuto. Embora a guia Uso forneça uma visão geral mais precisa do desempenho geral do seu banco de dados, talvez você não consiga detalhar o suficiente para solucionar possíveis problemas de desempenho.

Usar monitoramento em nuvem

Com o Cloud Monitoring do Google Cloud, você pode usar o Metrics Explorer para ver métricas de desempenho individuais ou criar diferentes painéis com gráficos que exibem várias combinações de métricas de desempenho ao longo do tempo. A integração do Realtime Database com o Cloud Monitoring oferece o nível mais profundo de granularidade.

As etapas para configurar o Cloud Monitoring são descritas em Monitorar o uso do banco de dados.

Consulte as seções a seguir para obter dicas sobre como usar métricas específicas do Cloud Monitoring para detectar problemas de desempenho.

Monitore o desempenho no Cloud Monitoring

Se você estiver enfrentando problemas de desempenho, incluindo tempo de atividade ou latência, convém usar o Cloud Monitoring para monitorar as métricas a seguir. Observe que todos os nomes de tipo de métrica são prefixados com firebasedatabase.googleapis.com/ .

Nome da métrica Descrição
Carregamento do banco de dados

io/database_load . Use essa métrica para monitorar quanto de sua largura de banda de banco de dados disponível está em uso processando solicitações ao longo do tempo. Você pode ter problemas de desempenho à medida que a carga do banco de dados se aproxima da largura de banda total disponível. Você também pode ver quais tipos de operação estão utilizando mais carga e solucionar problemas de acordo. A carga relatada pode exceder 100% em operações que levam mais de um minuto. Isso acontece quando a largura de banda total usada em vários minutos é condensada no intervalo de relatório de um minuto após a conclusão da operação.

Rede desativada por excesso

network/disabled_for_overages . Essa métrica reflete todas as interrupções que podem ter ocorrido se o seu Realtime Database excedeu qualquer largura de banda ou limites de rede.

Armazenamento desativado por excesso

storage/disabled_for_overages . Essa métrica reflete todas as interrupções que podem ter ocorrido se o seu Realtime Database excedeu os limites de armazenamento.

Combine métricas em gráficos em seu painel para insights e visões gerais úteis. Por exemplo, tente as seguintes combinações:

  • Operações: use a métrica io/database_load para ver quanto da carga total do banco de dados é usado por cada tipo de operação. Certifique-se de agrupar io/database_load por tipo para solucionar problemas de diferentes tipos de operação.
  • Armazenamento: use o storage/limit e storage/total_bytes para monitorar a utilização do armazenamento em relação aos limites de armazenamento do Realtime Database. Você também pode adicionar storage/disabled_for_overages para ver se seu aplicativo teve algum tempo de inatividade como resultado de limites de armazenamento excedidos.
  • Sobrecarga de SSL: use network/https_requests_count para monitorar quantas solicitações de conexão SSL seu banco de dados recebeu e divida as solicitações que reutilizaram um tíquete de sessão SSL existente com o filtro reused_ssl_session . Você pode medir isso em relação a network/sent_bytes_count e network/sent_payload_and_protocol_bytes_count para monitorar se seu aplicativo está ou não usando tíquetes de sessão SSL com eficiência.

Você também pode configurar alertas por meio do Cloud Monitoring e receber notificações com base nas métricas do Realtime Database. Por exemplo, você pode optar por receber uma notificação se seu io/database_load estiver se aproximando de um determinado limite.

Veja a lista completa de métricas do Realtime Database disponíveis por meio do Cloud Monitoring .

Tipos de carga de banco de dados

A métrica io/database_load também fornece um rótulo de qual tipo de operação causou a carga. A seguir estão os possíveis tipos de operações medidas:

  • admin : operações administrativas, como definir regras e ler metadados do projeto.
  • auth : Verificando a autenticação de contas de serviço ou Firebase Authentication para um único cliente.
  • client_management : Lidando com a adição e remoção de conexões simultâneas, isso inclui a execução de operações de desconexão na remoção.
  • get_shallow : Recuperando os dados de um REST GET com shallow=true .
  • get : Manipulação de operações REST GET.
  • listen : Recuperando os dados iniciais para operações on and once de clientes conectados.
  • on_disconnect : Registrando em operações de desconexão de clientes.
  • put : manipulando operações set de clientes ou operações REST PUT.
  • transaction : Realizando transações de requisições REST condicionais ou uma operação de transaction de um cliente.
  • update : manipulando operações de update ou solicitações REST PATCH.

Monitorar regras de segurança no Cloud Monitoring

Você também pode analisar a avaliação das regras de segurança. Observe que todos os nomes de tipo de métrica são prefixados com firebasedatabase.googleapis.com/ .

Nome da métrica Descrição
Avaliações de regras rules/evaluation_count . O número de avaliações de Realtime Database Rules executadas em resposta a solicitações de gravação ou leitura. Você pode dividir essa métrica pelo resultado da solicitação (ALLOW, DENY ou ERROR).

Adapte seu gráfico do Cloud Monitoring para avaliações de regras conforme necessário, por exemplo, filtrando resultados de avaliação específicos, ALLOW, DENY ou ERROR. A configuração e personalização de gráficos são abordadas em Monitorar o uso do banco de dados.

Veja a lista completa de métricas do Realtime Database disponíveis por meio do Cloud Monitoring .