O Monitoramento de desempenho usa traces para coletar dados sobre processos monitorados no seu app. Um trace é um relatório que contém dados capturados entre dois pontos de tempo no app.
Para todos os tipos de apps, o Monitoramento de desempenho coleta automaticamente um trace para cada solicitação de rede emitida pelo app, conhecido como trace de solicitação de rede HTTP/S. Esses traces coletam métricas do período entre o momento em que o app envia uma solicitação a um endpoint de serviço e o momento em que a resposta desse endpoint é concluída. O Monitoramento de desempenho coleta as seguintes métricas para cada endpoint ao qual seu app envia uma solicitação:
Tempo de resposta: é o período entre a criação da solicitação e o recebimento completo da resposta.
Tamanho do payload da resposta: tamanho do byte do payload da rede salvo pelo app.
Tamanho do payload da solicitação: tamanho do byte do payload da rede enviado pelo app.
A taxa de sucesso: é a porcentagem de respostas bem-sucedidas em relação ao total de respostas, considerando códigos de resposta no intervalo entre 100 e 399.
É possível visualizar os dados desses traces na subguia Solicitações de rede da tabela de traces, que está na parte inferior do painel Desempenho (saiba mais sobre como usar o console mais adiante nesta página).
O Monitoramento de desempenho coleta automaticamente métricas para solicitações de rede que usam as seguintes bibliotecas de rede:
Swift
- URLSession
- URLConnection
Objective-C
- NSURLSession
- NSURLConnection
Personalizar a agregação de dados de solicitações de rede
Além do conjunto de ferramentas e da agregação de dados prontos para uso das solicitações de rede, o Monitoramento de desempenho também é compatível com as opções a seguir:
- Instrumentar manualmente os traces de solicitações de rede: o monitoramento pronto para uso inclui a maioria das solicitações de rede do app. Porém, algumas delas podem não ser registradas ou talvez você queira usar uma biblioteca diferente para fazer solicitações de rede. Nesses casos, é possível usar a API Performance Monitoring para instrumentar manualmente os traces de solicitações de rede personalizados.
- Agregar dados em padrões de URL personalizados: caso haja URLs específicos que o Firebase não captura com a própria correspondência automática de padrões de URL, você poderá criar padrões de URL personalizados para monitorar um conjunto específico de URLs ao longo do tempo.
- Personalizar como a taxa de sucesso é calculada: às vezes, um código de erro é esperado para determinados endpoints da API ou já é processado no app. Nesses casos, é possível configurar como a taxa de sucesso é calculada e monitorar essas taxas das chamadas de rede do seu app de forma mais precisa.
Agregação de dados em padrões de URL
O Monitoramento de desempenho do Firebase agrega dados automaticamente para solicitações de rede semelhantes para ajudar a entender as tendências no desempenho da solicitação 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 de solicitação corresponder a um padrão de URL, o Firebase agregará automaticamente os dados da solicitação no padrão do URL. O Firebase exibe padrões de URL e os respectivos dados agregados na guia Rede no painel Desempenho do Console do Firebase.
O que é um padrão de URL?
Um padrão de URL contém um domínio e 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 seguintes solicitações de URL pode coincidir com o 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 de um padrão de URL também pode conter *
como o primeiro segmento.
Por exemplo: *.example.com/*/fruits/**
.
O Firebase mapeia cada solicitação para apenas um padrão de URL. Se você tiver configurado padrões de URL personalizados, o Firebase tentará corresponder os URLs de solicitação a esses padrões primeiro. Se o Firebase não encontrar um 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 que você tenha que configurar algo, o Monitoramento de desempenho tenta refletir o comportamento de uso mais recente do seu app, fazendo a correspondência entre suas solicitações e os padrões de URL automáticos.
Como funciona a correspondência automática de padrões de URL?
O Firebase faz a correspondência entre cada solicitação e o padrão de URL automático mais representativo derivado das solicitações enviadas pelo app. Ainda assim, note que o Firebase primeiro tenta corresponder os URLs de solicitação aos padrões de URL personalizados e configurados.
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 app.
Seu app 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 app e o adiciona como um padrão de URL automático em seu projeto.O Firebase agrega os dados das solicitações no padrão de URL automático
example.com/germany/**
para qualquer nova solicitação correspondente ao padrão.Depois de uma semana, a maioria das solicitações do seu app vai para
example.com/germany/animals/bears
eexample.com/germany/animals/birds
. Assim, o Firebase deriva um padrão de URL mais representativo deexample.com/germany/animals/**
.O Firebase agrega os dados das solicitações somente no novo padrão de URL para quaisquer novas solicitações correspondentes a esse novo padrão. O Firebase continua agregando dados para solicitações a
example.com/germany/cars
emexample.com/germany/**
.No entanto, nas semanas seguintes, 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 e, por isso, 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 ele não é mais o padrão de URL automático mais representativo.
Como a correspondência com padrões de URL automáticos é dinâmica, lembre-se do seguinte:
As correspondências e os dados agregados de solicitações anteriores não são afetados por novos padrões de URL. O Firebase não agrega novamente os dados de solicitação de forma retroativa.
Apenas solicitações futuras sã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, no entanto, que ele tenta corresponder os URLs de solicitação aos padrões de URL personalizados configurados primeiro.
Visualizar padrões de URL automáticos e seus dados
O Firebase mostra todos os padrões de URL e os dados agregados na subguia Solicitações de rede da tabela de traces, que está na parte de baixo do painel Desempenho no Console do Firebase.
É possível que existam padrões de URL com um rótulo Sem classificação. Esses são os padrões de URL automáticos "gerais" em que 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 termina para os dados agregados em um padrão de URL, o Firebase exclui esses dados. Se todos os dados agregados em um padrão de URL automático expirarem, o Firebase excluirá esse padrão do Console do Firebase.
Padrões de URL personalizados
É possível criar padrões de URL personalizados para monitorar padrões de URL específicos que o Firebase não captura com a própria correspondência de padrões de URL automática e derivada. Por exemplo, é possível usar um padrão de URL personalizado para resolver problemas de um URL específico ou monitorar um conjunto específico de URLs ao longo do tempo.
Acesse Criar padrões de URL personalizados para saber mais.
Acompanhar, visualizar e filtrar dados de desempenho
Para ver os dados de desempenho em tempo real, verifique se o seu app usa uma versão do SDK do Monitoramento de desempenho compatível com o processamento de dados em tempo real. Saiba mais sobre os dados de desempenho em tempo real.
Acompanhar métricas específicas no painel
Para saber qual é a tendência das suas principais métricas, adicione-as ao seu quadro de métricas na parte superior do painel Desempenho. É possível identificar rapidamente as regressões vendo alterações semanais ou verificar se as mudanças recentes no código estão melhorando o desempenho.
Para adicionar uma métrica ao quadro, siga as etapas a seguir:
- Acesse o painel Desempenho no Console do Firebase.
- Clique em um card de métricas vazio e selecione uma métrica atual para adicionar ao quadro.
- Clique em um card de métricas preenchido para ver mais opções, como substituir ou remover uma métrica.
O quadro de métricas mostra os dados de métricas coletados ao longo do tempo, em forma de gráfico e como uma alteração percentual numérica.
Saiba mais sobre como usar o painel.
Visualizar traces e os dados deles
Para visualizar os traces, acesse o painel Desempenho no Console do Firebase, role para baixo até a tabela de traces e clique na subguia adequada. A tabela mostra algumas das principais métricas para cada trace e é possível até classificar a lista pela alteração percentual de uma métrica específica.
No Console do Firebase, o Monitoramento de desempenho disponibiliza uma página de solução de problemas que destaca mudanças de métricas. Ela facilita a resolução de problemas de desempenho e reduz o impacto deles nos apps e para os usuários. Use essa página ao se deparar com possíveis problemas de desempenho, como os apresentados nos cenários a seguir:
- Você seleciona métricas relevantes no painel e nota um grande delta.
- Na tabela de traces, você define uma classificação para mostrar os maiores deltas na parte de cima e vê uma alteração de porcentagem significativa.
- Você recebe um alerta por e-mail sobre um problema de desempenho.
Para acessar a página de solução de problemas, você tem as opções a seguir:
- No painel de métricas, clique no botão Visualizar detalhes da métrica.
- Em qualquer card de métricas, selecione
. A página de solução de problemas mostra informações sobre a métrica selecionada. => Ver detalhes - Na tabela de traces, clique no nome de algum deles ou em um valor de métrica na linha associada a esse trace.
- Em um alerta por e-mail, clique em Investigar agora.
Ao clicar em um nome na tabela de traces, é possível mostrar os detalhes das métricas de
interesse. Clique no botão
- Filtre por Versão do app para visualizar dados de uma versão anterior ou da versão mais recente.
- Filtre por Dispositivo para saber como os dispositivos mais antigos lidam com o app.
- Filtre por País para garantir que o local do banco de dados não está afetando uma região específica.
Saiba mais sobre como visualizar dados dos traces.
Próximas etapas
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 estejam afetando o desempenho do app. Por exemplo, configure um alerta por e-mail para sua equipe que será enviado quando o tempo de resposta para um padrão de URL específico exceder um limite definido por você.
- Confira os relatórios detalhados das sessões dos usuários em que é possível ver um trace específico em uma linha do tempo com outros traces coletados durante a mesma sessão.