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.
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.
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.
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 .
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 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.
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 .
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.
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 .
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.
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
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 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 .
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 .
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.
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 .
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 ).
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.
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
O script acima carrega de maneira assíncrona o SDK independente e inicializa o Firebase após os incêndios do evento 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.
Quase em tempo real processamento de dados e exibição
Os processos de monitoramento de desempenho do FireBase coletavam dados de desempenho, o que resulta em dados de dados quase em tempo real no console do Firebase. Os dados processados são exibidos no console dentro de alguns minutos de sua coleção, daí o termo "quase em tempo real".
Para aproveitar o processamento de dados quase em tempo real, verifique se o seu aplicativo usa uma versão SDK compatível em tempo real .
Para aproveitar o processamento de dados quase em tempo real, você só precisa garantir que seu aplicativo use uma versão SDK de monitoramento de desempenho que seja compatível com o processamento de dados em tempo real.
Estas são as versões SDK 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
Observe que sempre recomendamos o uso da versão mais recente do SDK, mas qualquer versão listada acima permitirá que o monitoramento de desempenho processe seus dados em tempo real.
Essas são as versões SDK compatíveis com o processamento de dados 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
Observe que sempre recomendamos o uso da versão mais recente do SDK, mas qualquer versão listada acima permitirá que o monitoramento de desempenho processe seus dados em tempo real.
Se o seu aplicativo não usar uma versão SDK compatível em tempo real, você ainda verá todos os dados de desempenho do seu aplicativo no console do Firebase. No entanto, a exibição dos dados de desempenho será atrasada em aproximadamente 36 horas a partir do momento de sua coleção.
Sim! Independentemente de qual versão SDK use uma instância do aplicativo, você verá dados de desempenho de todos os seus usuários.
No entanto, se você estiver analisando dados recentes (com menos de 36 horas de idade), os dados exibidos são de usuários de instâncias de aplicativos usando uma versão SDK compatível em tempo real. Os dados não recentes , no entanto, incluem dados de desempenho de todas as versões do seu aplicativo.
Entrando em contato com o suporte do Firebase
Se você chegar ao suporte do Firebase , sempre inclua o seu ID do aplicativo Firebase. Encontre o seu ID do aplicativo Firebase no cartão de aplicativos de suas de projeto de configurações .