Monitorar o desempenho do Database

Há algumas maneiras de monitorar o desempenho do Firebase Realtime Database e identificar potenciais problemas no seu app. Analisar a largura de banda de entrada e saída e a carga do seu app também pode dar uma ideia do que esperar na fatura. Além disso, se algo parecer fora do normal, ter uma visão clara das operações do seu banco de dados pode ser uma ferramenta útil de solução de problemas.

Nesta página, abordaremos o monitoramento de desempenho do Realtime Database. Para o monitoramento de uso, consulte Monitorar o uso do Database.

Uso das ferramentas de monitoramento do Realtime Database

Você pode reunir dados sobre o desempenho do Realtime Database com ferramentas diferentes, de acordo com o nível de granularidade necessário.

Uso da ferramenta do criador de perfil do Realtime Database

A ferramenta do criador de perfil do Realtime Database apresenta uma visão geral em tempo real das operações de leitura/gravação no seu banco de dados. O relatório inclui informações sobre a velocidade e o payload de cada operação, além das consultas não indexadas. Ele não inclui informações históricas ou qualquer estatística de sobrecarga de conexão e não deve ser usado para fazer uma estimativa dos custos de faturamento.

Consulte Criar perfil do seu banco de dados para saber mais sobre como usar a ferramenta do criador de perfil.

No Console do Firebase

A guia Uso no Console do Firebase apresenta informações sobre conexões simultâneas ao seu banco de dados, como a quantidade de dados que você armazena, a largura de banda de saída (incluindo sobrecarga de protocolo e criptografia) e a carga do banco de dados durante intervalos de um minuto. A guia Uso apresenta uma visão geral mais precisa de todo o desempenho do banco de dados, mas talvez não mostre detalhes suficientes para resolver possíveis problemas de desempenho.

Uso do Stackdriver Monitoring

Com o Stackdriver Monitoring do Google Cloud Platform, 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 Stackdriver Monitoring oferece o nível mais profundo de granularidade.

As etapas para configurar o Stackdriver Monitoring são descritas em Monitorar o uso do Database.

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

Monitorar o desempenho no Stackdriver

Se você estiver enfrentando problemas com o desempenho, incluindo o tempo de atividade ou a latência, convém usar o Stackdriver para monitorar as métricas a seguir. Os nomes dos tipos de métricas são prefixados com firebasedatabase.googleapis.com/.

Nome da métrica Descrição
Carregamento do Database

io/database_load. Use essa métrica para monitorar a quantidade da largura de banda do banco de dados disponível que está em uso para processar solicitações ao longo do tempo. É possível que ocorram 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 com essa informação. A carga reportada pode exceder 100% em operações que demoram mais de um minuto. Isso ocorre 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 para uso excedente

network/disabled_for_overages. Essa métrica reflete quaisquer interrupções que possam ter ocorrido caso o Realtime Database tenha excedido os limites de largura de banda ou de rede.

Armazenamento desativado para uso excedente

storage/disabled_for_overages. Essa métrica reflete quaisquer interrupções que possam ter ocorrido caso seu Realtime Database tenha excedido os limites de armazenamento.

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

  • Operações: use a métrica io/database_load para ver a quantidade da carga total do banco de dados usada para cada tipo de operação. Agrupe io/database_load por tipo para resolver problemas de diferentes tipos de operação.
  • Armazenamento: use storage/limit e storage/total_bytes para monitorar sua utilização de armazenamento em relação aos limites do Realtime Database. Também é possível adicionar storage/disabled_for_overages para ver se seu app passou por algum tempo de inatividade por conta de limites de armazenamento excedidos.
  • Sobrecarga de SSL: use network/https_requests_count para monitorar o número de solicitações de conexão SSL recebidas pelo banco de dados e separe as solicitações que reutilizaram um tíquete de sessão SSL atual com o filtro reused_ssl_session. É possível avaliar isso em relação a network/sent_bytes_count e network/sent_payload_and_protocol_bytes_count para monitorar se seu app está usando tíquetes de sessão SSL com eficiência.

Também é possível configurar alertas por meio do Stackdriver Monitoring e receber notificações com base em métricas do Realtime Database. Por exemplo, é possível optar por receber uma notificação se 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 Stackdriver Monitoring.

Tipos de carga do Database

A métrica io/database_load também apresenta um rótulo que indica qual tipo de operação causou a carga. Veja a seguir os tipos de operações medidas:

  • admin: operações de administração, como definição de regras e leitura de metadados do projeto.
  • auth: autenticação de verificação de contas de serviço ou do Firebase Authentication para um único cliente.
  • client_management: gerenciamento da adição e remoção de conexões simultâneas, incluindo a execução de operações de desconexão na remoção.
  • get_shallow: recuperação dos dados de um REST GET com shallow=true.
  • get: gerenciamento das operações REST GET.
  • listen: recuperação dos dados iniciais para as operações on e once de clientes conectados.
  • on_disconnect: registro em operações de desconexão de clientes.
  • put: gerenciamento de operações set de clientes ou operações REST PUT.
  • transaction: execução de transações de solicitações REST condicionais ou uma operação de um cliente.
  • update: gerenciamento de operações ou solicitações REST PATCH.

Monitorar regras de segurança no Stackdriver

Também é possível analisar a avaliação das regras de segurança. Os nomes dos tipos de métricas são prefixados com firebasedatabase.googleapis.com/.

Nome da métrica Descrição
Avaliações de regra rules/evaluation_count. O número de avaliações das regras do Realtime Database realizadas em resposta a solicitações de gravação ou leitura. É possível separar essa métrica pelo resultado da solicitação (PERMITIR, NEGAR ou ERRO).

Adapte seu gráfico do Stackdriver para avaliações de regras conforme necessário, por exemplo, filtrando resultados de avaliação específicos, PERMITIR, NEGAR ou ERRO. A configuração e a personalização de gráficos são abordadas em Monitorar o uso do Database.

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