Esta página fornece dicas de solução de problemas para começar a usar o Monitoramento de desempenho ou usar recursos e ferramentas do Monitoramento de desempenho.
Primeiras verificações para solução de problemas
As duas verificações a seguir são práticas recomendadas gerais para qualquer pessoa antes de solucionar problemas adicionais.
1. Verifique as mensagens de log para eventos de desempenho
Verifique suas mensagens de log para ter certeza de que o SDK do Monitoramento de Desempenho está capturando eventos de desempenho.
Como visualizar mensagens de log para eventos de desempenho
Abra as ferramentas de desenvolvedor do seu navegador (por exemplo, guia Rede para Chrome Dev Tools ou no Network Monitor para Firefox ).
Atualize seu aplicativo da web no navegador.
Verifique suas mensagens de log em busca de mensagens de erro.
Após alguns segundos, procure uma chamada de rede para
firebaselogging.googleapis.com
nas ferramentas de desenvolvedor do seu navegador. A presença dessa chamada de rede mostra que o navegador está enviando dados de desempenho para o Firebase.
Se seu aplicativo não estiver registrando eventos de desempenho, revise as dicas de solução de problemas .
2. Verifique o painel de status do Firebase
Verifique o Painel de status do Firebase caso haja uma interrupção conhecida do Firebase ou do Monitoramento de desempenho.
Introdução ao monitoramento de desempenho
Se você está começando a usar o Monitoramento de desempenho ( iOS+ | Android | Web ), as dicas de solução de problemas a seguir podem ajudar com problemas que envolvem a detecção do SDK pelo Firebase ou a exibição dos primeiros dados de desempenho no console do Firebase.
Adicionado o SDK ao aplicativo, mas o console ainda diz para adicionar o SDK
O Firebase pode detectar se você adicionou o SDK do Monitoramento de desempenho ao seu aplicativo quando recebe informações de eventos (como interações do aplicativo). Normalmente, 10 minutos após iniciar o aplicativo, o painel de desempenho do console do Firebase exibe uma mensagem "SDK detectado". Então, em 30 minutos, o painel exibe os dados processados inicialmente.
Se já se passaram mais de 10 minutos desde que você adicionou a versão mais recente do SDK ao seu aplicativo e você ainda não vê nenhuma alteração, verifique suas mensagens de log para garantir que o Monitoramento de desempenho esteja registrando eventos. Tente as etapas de solução de problemas apropriadas, conforme descrito abaixo, para solucionar uma mensagem de detecção atrasada do SDK.
O aplicativo está registrando eventos: etapas de solução de problemas
Se você ainda estiver desenvolvendo localmente, tente gerar mais eventos para coleta de dados:
Sirva e visualize seu aplicativo Web em um ambiente local.
Gere eventos carregando subpáginas para seu site, interagindo com seu aplicativo e/ou acionando solicitações de rede. Certifique-se de manter a guia do navegador aberta por pelo menos 10 segundos após o carregamento da página.
Verifique se o objeto de configuração do Firebase foi adicionado corretamente ao aplicativo e se você não modificou o objeto. Especificamente, verifique o seguinte:
- O ID do Firebase Web App (
appId
) no objeto de configuração está correto para seu aplicativo. Encontre seu ID do aplicativo Firebase no cartão Seus aplicativos em suas Configurações do projeto .
Se algo parecer errado com o objeto de configuração do seu aplicativo, tente o seguinte:
Exclua o objeto de configuração que você possui atualmente em seu aplicativo.
Siga estas instruções para obter um novo objeto de configuração e adicioná-lo ao seu aplicativo web.
- O ID do Firebase Web App (
Se o SDK estiver registrando eventos e tudo parecer estar configurado corretamente, mas você ainda não estiver vendo a mensagem de detecção do SDK ou os dados processados (após duas horas), entre em contato com o Suporte do Firebase .
O aplicativo não está registrando eventos: etapas de solução de problemas
Certifique-se de que o SDK do Monitoramento de desempenho esteja inicializado corretamente no seu aplicativo.
Certifique-se de que o SDK do Monitoramento de Desempenho não esteja desabilitado por meio do seguinte sinalizador:
-
performance.instrumentationEnabled
-
Certifique-se de que o cache do seu navegador esteja desativado, caso contrário, o navegador poderá não capturar nenhuma nova configuração de instrumentação.
Feche e reabra a guia da página da web. Verifique o registro novamente.
Se você acabou de adicionar o SDK do Monitoramento de desempenho ao seu aplicativo, talvez seja necessário reiniciar totalmente o aplicativo para que o SDK comece a funcionar.
Se você não encontrar nada desativado no seu aplicativo, entre em contato com o suporte do Firebase .
O console diz que o SDK foi detectado, mas nenhum dado é exibido
O Monitoramento de Desempenho processa dados de eventos de desempenho antes de exibi-los no painel Desempenho .
Se já se passaram mais de 24 horas desde que a mensagem "SDK detectado" apareceu e você ainda não está vendo os dados, verifique o Firebase Status Dashboard caso haja uma interrupção conhecida. Se não houver interrupção, entre em contato com o suporte do Firebase .
Solução de problemas gerais
Se você adicionou o SDK com êxito e está usando o Monitoramento de desempenho em seu aplicativo, as dicas de solução de problemas a seguir podem ajudar com problemas gerais que envolvem recursos e ferramentas do Monitoramento de desempenho.
O aplicativo não está registrando eventos de desempenho
Se você não estiver vendo mensagens de registro de eventos de desempenho , tente as seguintes etapas de solução de problemas:
Certifique-se de que o SDK do Monitoramento de desempenho esteja inicializado corretamente no seu aplicativo.
Certifique-se de que o SDK do Monitoramento de Desempenho não esteja desabilitado por meio do seguinte sinalizador:
-
performance.instrumentationEnabled
-
Certifique-se de que o cache do seu navegador esteja desativado, caso contrário, o navegador poderá não capturar nenhuma nova configuração de instrumentação.
Feche e reabra a guia da página da web. Verifique o registro novamente.
Se você acabou de adicionar o SDK do Monitoramento de desempenho ao seu aplicativo, talvez seja necessário reiniciar totalmente o aplicativo para que o SDK comece a funcionar.
Se você não encontrar nada desativado no seu aplicativo, entre em contato com o suporte do Firebase .
O painel de desempenho não contém dados de atraso na primeira entrada
Se você não estiver vendo os dados da primeira métrica de atraso de entrada , tente as seguintes etapas de solução de problemas:
Esteja ciente de que o Monitoramento de Desempenho registra apenas a métrica de atraso da primeira entrada quando um usuário clica na página da web nos primeiros 5 segundos após o carregamento da página.
Certifique-se de configurar seu aplicativo para medir essa métrica. A primeira métrica de atraso de entrada requer configuração manual . Especificamente, você precisa adicionar a biblioteca polyfill para esta métrica. Para obter instruções de instalação, consulte a documentação da biblioteca.
Observe que a adição desta biblioteca polyfill não é necessária para que o Monitoramento de desempenho relate outras métricas de aplicativos da web.
O painel de desempenho não contém dados de rastreamento personalizados
Você está vendo dados de desempenho para rastreamentos coletados automaticamente , mas não para rastreamentos de código personalizado ? Tente as seguintes etapas de solução de problemas:
Verifique a configuração de rastreamentos de código personalizados instrumentados por meio da API Trace , especialmente os seguintes:
- Os nomes para rastreamentos de código personalizados e métricas personalizadas devem atender aos seguintes requisitos: nenhum espaço em branco à esquerda ou à direita, nenhum caractere de sublinhado (
_
) à esquerda e o comprimento máximo é de 32 caracteres. - Todos os rastreamentos devem ser iniciados e interrompidos. Qualquer rastreamento que não for iniciado, não interrompido ou interrompido antes de ser iniciado não será registrado.
Observe que se você estiver usando o método
record()
, não será necessário iniciar ou interromper explicitamente o rastreamento.- Os nomes para rastreamentos de código personalizados e métricas personalizadas devem atender aos seguintes requisitos: nenhum espaço em branco à esquerda ou à direita, nenhum caractere de sublinhado (
Certifique-se de que a coleta de dados do Monitoramento de Desempenho não esteja desabilitada por meio do seguinte sinalizador:
performance.dataCollectionEnabled
Esse sinalizador controla a coleta de dados somente para rastreamentos de código personalizado (não todos os dados).
Verifique suas mensagens de log para certificar-se de que o Monitoramento de Desempenho esteja registrando os rastreamentos de código customizados esperados.
Se o Monitoramento de desempenho estiver registrando eventos, mas nenhum dado for exibido após 24 horas, entre em contato com o suporte do Firebase .
O painel de desempenho não contém dados de solicitação de rede
Se faltarem dados de solicitação de rede, esteja ciente do seguinte:
O Monitoramento de Desempenho coleta automaticamente métricas para solicitações de rede relatadas pela API do navegador. Esses relatórios não incluem solicitações de rede com falha.
Dependendo do comportamento do seu código e das bibliotecas de rede usadas pelo seu código, o Monitoramento de Desempenho poderá relatar apenas as solicitações de rede concluídas. Isso significa que as conexões HTTP/S deixadas abertas podem não ser relatadas.
Os dados de solicitação de rede não estão sendo agregados conforme o esperado
Saiba mais sobre como o Monitoramento de desempenho agrega dados de solicitação de rede em padrões de URL.
Você também pode experimentar padrões de URL personalizados !
Perguntas frequentes
O que aconteceu com os principais problemas no cartão Desempenho na página inicial do projeto?
Substituímos os principais problemas por alertas recentes como uma continuação da nossa recente introdução de alertas, que notificam você automaticamente quando os limites definidos são ultrapassados. Os problemas agora estão obsoletos e substituídos por alertas.
O seletor de aplicativos na parte superior do cartão Desempenho filtra as entradas de alerta em Alertas recentes . Somente os três alertas mais recentes do(s) aplicativo(s) selecionado(s) são exibidos.
Para saber mais sobre alertas, consulte Configurar alertas para problemas de desempenho .
O que aconteceu com a capacidade de definir limites para problemas no console?
O Monitoramento de Desempenho oferece suporte a alertas para métricas que excedem os limites definidos. Para evitar confusão com esses limites configuráveis para métricas de desempenho, removemos a capacidade de configurar limites para problemas .
O que aconteceu com as informações de detalhes e métricas no console do Firebase?
Substituímos as páginas Detalhes e Métricas por uma interface de usuário (IU) centralizada e redesenhada para melhorar a forma como você soluciona problemas. Essa nova IU de solução de problemas oferece a mesma funcionalidade básica oferecida por Detalhes e Métricas. Para saber mais sobre solução de problemas, consulte Exibir mais dados para um rastreamento específico .
Por que o número de amostras não é o que eu esperava?
O Monitoramento de desempenho coleta dados de desempenho dos dispositivos dos usuários do seu aplicativo. Se seu aplicativo tiver muitos usuários ou gerar uma grande quantidade de atividade de desempenho, o Monitoramento de Desempenho poderá limitar a coleta de dados a um subconjunto de dispositivos para reduzir o número de eventos processados. Esses limites são altos o suficiente para que, mesmo com menos eventos, os valores da métrica ainda sejam representativos da experiência do usuário no aplicativo.
Para gerenciar o volume de dados que coletamos, o Monitoramento de Desempenho utiliza as seguintes opções de amostragem:
Limitação de taxa no dispositivo : para evitar que um dispositivo envie rajadas repentinas de rastreamentos, limitamos o número de rastreamentos de código e de solicitação de rede enviados de um dispositivo a 300 eventos a cada 10 minutos. Essa abordagem protege o dispositivo de instrumentações em loop que podem enviar grandes quantidades de dados de desempenho e evita que um único dispositivo distorça as medições de desempenho.
Amostragem dinâmica : o Monitoramento de desempenho coleta um limite de aproximadamente 100 milhões de eventos para rastreamentos de código e 100 milhões para rastreamentos de solicitação de rede por aplicativo diariamente em todos os usuários do aplicativo. Uma taxa de amostragem dinâmica é buscada nos dispositivos (usando o Firebase Remote Config) para determinar se um dispositivo aleatório deve capturar e enviar rastreamentos. Um dispositivo que não está selecionado para amostragem não envia nenhum evento. A taxa de amostragem dinâmica é específica do aplicativo e se ajusta para garantir que o volume geral de dados coletados permaneça abaixo do limite.
As sessões de usuário enviam dados adicionais e detalhados do dispositivo de um usuário, exigindo mais recursos para capturar e enviar os dados. Para minimizar o impacto das sessões do usuário, o Monitoramento de Desempenho também pode restringir o número de sessões.
Limitação de taxa do lado do servidor : para garantir que os aplicativos não excedam o limite de amostragem, o Monitoramento de Desempenho pode usar a amostragem do lado do servidor para descartar alguns eventos recebidos dos dispositivos. Embora este tipo de limitação não altere a eficácia das nossas métricas, pode causar pequenas mudanças de padrão, incluindo as seguintes:
- O número de rastreamentos pode ser diferente do número de vezes que um trecho de código foi executado.
- Os rastreamentos intimamente acoplados no código podem ter, cada um, um número diferente de amostras.
O que aconteceu com a guia Problemas no console?
Substituímos a guia Problemas pela introdução de Alertas, que notifica você automaticamente quando os limites definidos são excedidos. Você não precisa mais verificar manualmente o console do Firebase para determinar o status de um limite. Para saber mais sobre alertas, consulte Configurar alertas para problemas de desempenho .
O que aconteceu com as guias On Device e Network no console? Como posso ver os rastros que estavam nessas páginas?
Redesenhamos a seção Monitoramento de desempenho do console do Firebase para que a guia Painel exiba suas principais métricas e todos os seus rastreamentos em um único espaço. Como parte da reformulação, removemos as páginas No dispositivo e Rede .
A tabela de rastreamentos na parte inferior da guia Painel tem todas as mesmas informações exibidas nas guias No dispositivo e Rede , mas com alguns recursos adicionais, incluindo a capacidade de classificar seus rastreamentos pela alteração percentual para uma métrica específica. Para visualizar todas as métricas e dados de um rastreamento específico, clique no nome do rastreamento na tabela de rastreamentos.
Visualize seus rastreamentos nas seguintes subguias da tabela de rastreamentos:
- Rastreamentos de solicitação de rede (prontos para uso e personalizados) — subguia Solicitações de rede
- Rastreamentos de código personalizados — subguia Rastreamentos personalizados
- Início do aplicativo, rastreamentos do aplicativo em primeiro plano e do aplicativo em segundo plano — subguia Rastreamentos personalizados
- Rastreamentos de renderização de tela — subguia Renderização de tela
- Rastreamentos de carregamento de página — subguia Carregamento de página
Para obter detalhes sobre a tabela de rastreamentos e visualizar métricas e dados, visite a página de visão geral do console ( iOS+ | Android | Web ).
Por que o número de quadros lentos e congelados não é o que eu esperava?
Os quadros de renderização lenta e os quadros congelados são calculados com uma taxa de atualização do dispositivo assumida de 60 Hz. Se a taxa de atualização de um dispositivo for inferior a 60 Hz, cada quadro terá um tempo de renderização mais lento porque menos quadros são renderizados por segundo. Tempos de renderização mais lentos podem fazer com que quadros mais lentos ou congelados sejam relatados porque mais quadros serão renderizados mais lentamente ou congelarão. No entanto, se a taxa de atualização de um dispositivo for superior a 60 Hz, cada quadro terá um tempo de renderização mais rápido. Isso pode fazer com que menos quadros lentos ou congelados sejam relatados. Esta é uma limitação atual no SDK do Monitoramento de Desempenho.
Como adiciono o SDK JS de monitoramento de desempenho menor e com namespace (o SDK "autônomo") ao meu aplicativo da web?
Se o monitoramento de desempenho for o único produto Firebase em seu aplicativo, você poderá usar o SDK de monitoramento de desempenho independente (e o script de cabeçalho recomendado abaixo) se estiver interessado:
- Usando uma biblioteca nomes
- Reduzindo o tamanho do seu pacote SDK
- atrasando a inicialização do SDK até depois que sua página carrega
Para incluir o SDK de monitoramento de desempenho independente em seu aplicativo e adiar sua inicialização para após o carregamento da página:
- Adicione o script a seguir ao cabeçalho do seu arquivo de índice.
- Certifique -se de adicionar o objeto de configuração do projeto Firebase do aplicativo.
(function(sa,fbc){function load(f,c){var a=document.createElement('script');
a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(a,s);}load(sa);
window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()});
})(performance_standalone ,firebaseConfig );
onde,
- performance_standalone é
'https://www.gstatic.com/firebasejs/10.9.0/firebase-performance.js'
firebaseConfig é o objeto de configuração de Firebase do seu aplicativo
onload
da janela. Essa tática reduz o impacto que o SDK poderia ter nas métricas de carga da página , pois o navegador já relatou suas métricas de carregamento quando você inicializa o SDK.
fetch
e Promise
que não estão disponíveis em navegadores mais antigos. Os polifilos para essas APIs estão incluídos no JS SDK de monitoramento de desempenho de Firebase padrão, mas são omitidos do SDK independente para reduzir o tamanho.
(function(sdkSource, firebaseConfigObject) {
function load(f, c) {
// Creates a script tag to load the standalone SDK
var sdkScript = document.createElement('script');
// Sets it to an async script so that it doesn't interfere with page load
sdkScript.async = 1;
// Sets the source of the script
sdkScript.src = f;
// Inserts the script into the head of the page
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(sdkScript, s);
}
// Calls the load method
load(sdkSource);
// Initializes the SDK only when the onload method is called
window.addEventListener('load', function() {
firebase.initializeApp(firebaseConfigObject).performance();
});
})(performance_standalone ,firebaseConfig );
performance_standalone é 'https://www.gstatic.com/firebasejs/10.9.0/firebase-performance-standalone.js'
firebaseConfig é o objeto de configuração de Firebase do seu aplicativo
Quase em tempo real processamento de dados e exibição
O que significa dados de desempenho "quase em tempo real"?
Como faço para obter dados de desempenho em tempo real para o meu aplicativo?
iOS - v7.3.0 ou mais tarde TvOS - v8.9.0 ou mais tarde Android - v19.0.10 ou posterior (ou Firebase Android Bom v26.1.0 ou mais tarde) Web - v7.14.0 ou mais tarde
Quais versões do SDK de monitoramento de desempenho são consideradas compatíveis em tempo real?
iOS - v7.3.0 ou mais tarde TvOS - v8.9.0 ou mais tarde Android - v19.0.10 ou posterior (ou Firebase Android Bom v26.1.0 ou mais tarde) Web - v7.14.0 ou mais tarde