O Monitoramento de desempenho usa rastreios para coletar dados sobre processos monitorados no seu aplicativo. Um rastreamento é um relatório que contém dados capturados entre dois momentos no seu aplicativo.
Para todos os tipos de aplicativos, o Monitoramento de Desempenho coleta automaticamente um rastreamento para cada solicitação de rede emitida pelo seu aplicativo, chamado rastreamento de solicitação de rede HTTP/S . Esses rastreamentos coletam métricas para o tempo entre o momento em que seu aplicativo emite uma solicitação para um endpoint de serviço e o momento em que a resposta desse endpoint é concluída. Para qualquer endpoint para o qual seu aplicativo faz uma solicitação, o Monitoramento de desempenho captura diversas métricas:
Tempo de resposta – Tempo entre o momento em que a solicitação é feita e o momento em que a resposta é totalmente recebida
Tamanho da carga útil de resposta — Tamanho em bytes da carga útil da rede baixada pelo aplicativo
Tamanho da carga útil da solicitação — Tamanho em bytes da carga útil da rede carregada pelo aplicativo
Taxa de sucesso — Porcentagem de respostas bem-sucedidas (códigos de resposta na faixa de 100 a 399) em comparação com o total de respostas
Você pode visualizar os dados desses rastreamentos na subguia Solicitações de rede da tabela de rastreamentos, que fica na parte inferior do painel Desempenho (saiba mais sobre como usar o console posteriormente nesta página).
Personalize a agregação de dados de solicitação de rede
Além das ferramentas prontas para uso e da agregação de dados para solicitações de rede, o Monitoramento de Desempenho também oferece suporte às seguintes opções:
- Instrumente manualmente os rastreamentos de solicitação de rede: o monitoramento pronto para uso inclui a maioria das solicitações de rede para seu aplicativo. No entanto, algumas solicitações podem não ser relatadas ou você pode usar uma biblioteca diferente para fazer solicitações de rede. Nesses casos, você pode usar a API Performance Monitoring para instrumentar manualmente rastreamentos de solicitação de rede personalizados .
- Agregar dados em padrões de URL personalizados: se houver URLs específicos que o Firebase não esteja capturando com a correspondência automática de padrões de URL derivados, você poderá criar padrões de URL personalizados para monitorar um conjunto específico de URLs ao longo do tempo.
- Personalize como a taxa de sucesso é calculada: às vezes, um código de erro é esperado para determinados endpoints de API ou já é tratado em seu aplicativo. Nesses casos, você pode configurar como a taxa de sucesso é calculada e monitorar a taxa de sucesso das chamadas de rede do seu aplicativo com mais precisão.
Agregação de dados sob padrões de URL
O Monitoramento de desempenho do Firebase agrega automaticamente dados de solicitações de rede semelhantes para ajudar você a entender as tendências no desempenho de suas solicitações de rede.
Para cada solicitação, o Firebase verifica se o URL da solicitação de rede corresponde a um padrão de URL. Se o URL da solicitação corresponder a um padrão de URL, o Firebase agregará automaticamente os dados da solicitação no padrão de URL. O Firebase exibe padrões de URL e seus dados agregados na guia Rede do painel Desempenho do console do Firebase.
O que é um padrão de URL?
Um padrão de URL contém um domínio mais um padrão que pode corresponder a um caminho de URL, por exemplo: example.com/*/animals/**
.
Os padrões de URL podem conter os seguintes segmentos de caminho:
- texto simples — corresponde a uma string exata
-
*
— corresponde a qualquer string em um único segmento de caminho -
**
— corresponde a um sufixo de caminho arbitrário
Os padrões de URL podem ser:
- Padrões derivados do Firebase – chamados de padrões de URL automáticos
- Padrões definidos pelo usuário – chamados de padrões de URL personalizados
Por exemplo: qualquer uma das solicitações de URL a seguir pode corresponder ao padrão de URL example.com/*/animals/**
.
-
example.com/singapore/animals
-
example.com/australia/animals/spiders
-
example.com/australia/animals/marsupials/koala.png
O domínio para um padrão de URL também pode conter *
como seu primeiro segmento, por exemplo: *.example.com/*/fruits/**
.
O Firebase mapeia cada solicitação para apenas um padrão de URL . Se você configurou algum padrão de URL personalizado , o Firebase tentará primeiro corresponder os URLs de solicitação a esses padrões. Se o Firebase não encontrar nenhum padrão de URL personalizado correspondente, ele corresponderá um URL de solicitação ao padrão de URL automático mais representativo . Saiba mais sobre padrões de URL automáticos e personalizados nas seções a seguir.
Padrões de URL automáticos
Sem nenhuma configuração sua, o Monitoramento de desempenho tenta refletir o comportamento de uso mais recente do seu aplicativo, combinando as solicitações do seu aplicativo com padrões de URL automáticos .
Como funciona a correspondência automática de padrões de URL?
O Firebase corresponde cada solicitação ao padrão de URL automático mais representativo derivado das solicitações enviadas pelo seu aplicativo. Observe, porém, que o Firebase tenta primeiro corresponder os URLs de solicitação a qualquer padrão de URL personalizado configurado.
Veja a seguir um exemplo básico de como o Firebase tenta corresponder as solicitações ao padrão de URL automático mais representativo para seu aplicativo.
Seu aplicativo envia muitas solicitações para URLs como:
-
example.com/germany/animals/bears
-
example.com/germany/animals/birds
-
example.com/germany/cars
O Firebase determina que
example.com/germany/**
é um padrão de solicitação comum para seu aplicativo e o adiciona como um padrão de URL automático em seu projeto.Para quaisquer novas solicitações correspondentes a esse padrão de URL, o Firebase agrega os dados das solicitações no padrão de URL automático
example.com/germany/**
.-
Depois de uma semana, a maioria das solicitações do seu aplicativo são para
example.com/germany/animals/bears
eexample.com/germany/animals/birds
. Portanto, o Firebase deriva um padrão de URL mais representativo deexample.com/germany/animals/**
.Para quaisquer novas solicitações correspondentes a esse novo padrão de URL, o Firebase agrega os dados das solicitações somente no novo padrão de URL. O Firebase continua agregando dados para solicitações para
example.com/germany/cars
emexample.com/germany/**
.No entanto, nas próximas semanas, as solicitações do seu aplicativo para
example.com/germany/animals/bears
eexample.com/germany/animals/birds
diminuirão substancialmente. O Firebase determina queexample.com/germany/animals/**
não representa o comportamento de uso mais recente do seu aplicativo, então o Firebase começa a corresponder essas duas solicitações aexample.com/germany/**
.O Firebase não agrega mais dados de solicitação em
example.com/germany/animals/**
porque não é mais o padrão de URL automático mais representativo.
Como a correspondência automática de padrões de URL é dinâmica, esteja ciente do seguinte:
As correspondências e os dados agregados de solicitações anteriores não são afetados pelos novos padrões de URL. O Firebase não reagrega dados de solicitação retroativamente.
Somente solicitações futuras serão afetadas por novos padrões de URL. O Firebase mapeia cada nova solicitação para o padrão de URL automático mais representativo. Observe, porém, que o Firebase tenta primeiro corresponder os URLs de solicitação a qualquer padrão de URL personalizado configurado.
Visualize padrões de URL automáticos e seus dados
O Firebase exibe todos os padrões de URL e seus dados agregados na subguia Solicitações de rede da tabela de rastreamentos, que fica na parte inferior do painel Desempenho do console do Firebase.
Você poderá ver padrões de URL com um rótulo Sem categoria . Esses são padrões de URL automáticos "amplos" sob os quais o Firebase pode agregar dados para solicitações que não correspondem a nenhum padrão de URL mais específico.
Quando o período de retenção de dados agregados em um padrão de URL termina, o Firebase exclui esses dados do padrão de URL. Se todos os dados agregados em um padrão de URL automático expirarem, o Firebase excluirá esse padrão de URL do Console do Firebase.
Padrões de URL personalizados
Você pode criar padrões de URL personalizados para monitorar padrões de URL específicos que o Firebase não está capturando com a correspondência automática de padrões de URL derivados . Por exemplo, você pode usar um padrão de URL personalizado para solucionar problemas de um URL específico ou monitorar um conjunto específico de URLs ao longo do tempo.
Visite Criar padrões de URL personalizados para saber mais.
Rastreie, visualize e filtre dados de desempenho
Para visualizar dados de desempenho em tempo real, verifique se seu aplicativo usa uma versão do SDK do Monitoramento de desempenho compatível com o processamento de dados em tempo real. Saiba mais sobre dados de desempenho em tempo real .
Acompanhe métricas específicas em seu painel
Para saber a tendência de suas principais métricas, adicione-as ao quadro de métricas na parte superior do painel Desempenho . Você pode identificar regressões rapidamente vendo as alterações semanais ou verificando se as alterações recentes no seu código estão melhorando o desempenho.
Para adicionar uma métrica ao seu quadro de métricas, siga estas etapas:
- Acesse o painel Desempenho no console do Firebase.
- Clique em um cartão de métrica vazio e selecione uma métrica existente para adicionar ao seu quadro.
- Clique em em um cartão de métrica preenchido para obter mais opções, por exemplo, para substituir ou remover uma métrica.
O quadro de métricas mostra os dados de métricas coletados ao longo do tempo, tanto em formato gráfico quanto como uma variação percentual numérica.
Saiba mais sobre como usar o painel .
Ver rastreamentos e seus dados
Para visualizar seus rastreamentos, acesse o painel Desempenho no console do Firebase, role para baixo até a tabela de rastreamentos e clique na subguia apropriada. A tabela exibe algumas métricas principais para cada rastreamento e você pode até classificar a lista pela alteração percentual de uma métrica específica.
O Monitoramento de desempenho fornece uma página de solução de problemas no Console do Firebase que destaca alterações de métricas, facilitando a abordagem rápida e minimizando o impacto de problemas de desempenho em seus aplicativos e usuários. Você pode usar a página de solução de problemas ao aprender sobre possíveis problemas de desempenho, por exemplo, nos seguintes cenários:
- Você seleciona métricas relevantes no painel e percebe um grande delta.
- Na tabela de rastreamentos, você classifica para exibir os maiores deltas na parte superior e vê uma alteração percentual significativa.
- Você recebe um alerta por e-mail notificando sobre um problema de desempenho.
Você pode acessar a página de solução de problemas das seguintes maneiras:
- No painel de métricas, clique no botão Visualizar detalhes da métrica .
- Em qualquer cartão de métrica, selecione
- Na tabela de rastreamentos, clique em um nome de rastreamento ou em qualquer valor de métrica na linha associada a esse rastreamento.
- Em um alerta por email, clique em Investigar agora .
Ao clicar em um nome de rastreamento na tabela de rastreamentos, você poderá detalhar as métricas de interesse. Clique no
- Filtre por versão do aplicativo para visualizar dados sobre uma versão anterior ou mais recente
- Filtre por dispositivo para saber como os dispositivos mais antigos lidam com seu aplicativo
- Filtre por país para garantir que a localização do seu banco de dados não esteja afetando uma região específica
Saiba mais sobre como visualizar dados para seus rastreamentos .
Próximos passos
Saiba mais sobre como usar atributos para examinar dados de desempenho.
Saiba mais sobre como rastrear problemas de desempenho no Console do Firebase.
Configure alertas para solicitações de rede que estão prejudicando o desempenho do seu aplicativo. Por exemplo, você pode configurar um alerta por e-mail para sua equipe se o tempo de resposta para um padrão de URL específico exceder um limite definido por você.
- Visualize relatórios detalhados de sessões de usuário nos quais você pode ver um rastreamento específico em um contexto de linha do tempo de outros rastreamentos coletados durante a mesma sessão.