O Monitoramento de Desempenho coleta rastreamentos para ajudar você a monitorar o desempenho do seu aplicativo. Um rastreamento é um relatório de dados de desempenho capturados entre dois momentos no seu aplicativo.
Você pode criar seus próprios rastreamentos para monitorar dados de desempenho associados a códigos específicos em seu aplicativo. Com um rastreamento de código personalizado , você pode medir quanto tempo leva para seu aplicativo concluir uma tarefa específica ou um conjunto de tarefas, por exemplo, carregar um conjunto de imagens ou consultar seu banco de dados.
A métrica padrão para um rastreamento de código personalizado é sua "duração" (o tempo entre os pontos inicial e final do rastreamento), mas você também pode adicionar métricas personalizadas .
No seu código, você define o início e o fim de um rastreamento de código personalizado usando as APIs fornecidas pelo SDK do Performance Monitoring.Para aplicativos Android, você também pode monitorar métodos específicos usando a anotação @AddTrace
.Os rastreamentos de código personalizado podem ser iniciados a qualquer momento após terem sido criados e são thread-safe.
Como a métrica padrão coletada para esses rastreamentos é "duração", eles às vezes são chamados de "rastreamentos de duração".
Você pode visualizar os dados desses rastreamentos na subguia Rastreamentos personalizados da tabela de rastreamentos, que fica na parte inferior do painel Desempenho (saiba mais sobre como usar o console posteriormente nesta página).
Atributos padrão, atributos customizados e métricas customizadas
Para rastreamentos de código personalizados, o Monitoramento de desempenho registra automaticamente atributos padrão (metadados comuns, como versão do aplicativo, país, dispositivo etc.) para que você possa filtrar os dados do rastreamento no Console do Firebase. Você também pode adicionar e monitorar atributos personalizados (como nível de jogo ou propriedades do usuário).Você também pode configurar um rastreamento de código personalizado para registrar métricas personalizadas para eventos relacionados ao desempenho que ocorrem dentro do escopo do rastreamento. Por exemplo, você pode criar uma métrica personalizada para o número de acertos e erros do cache ou o número de vezes que a UI deixa de responder por um período perceptível.
Atributos e métricas personalizados são exibidos no console do Firebase junto com os atributos padrão e a métrica padrão para o rastreamento.
Adicionar rastreamentos de código personalizados
Use a API Performance Monitoring Trace para adicionar rastreamentos de código customizados para monitorar o código do aplicativo específico.
Observe o seguinte:
- Um aplicativo pode ter vários rastreamentos de código personalizados.
- Mais de um rastreamento de código personalizado pode ser executado ao mesmo tempo.
- Os nomes para rastreamentos de código personalizados devem atender aos seguintes requisitos: nenhum espaço em branco à esquerda ou à direita, nenhum caractere de sublinhado (
_
) à esquerda e o comprimento máximo é de 100 caracteres. - Os rastreamentos de código personalizados oferecem suporte à adição de métricas e atributos personalizados .
Para iniciar e interromper um rastreamento de código personalizado, envolva o código que você deseja rastrear com linhas de código semelhantes às seguintes (este exemplo usa um nome de rastreamento personalizado test_trace
):
Kotlin+KTX
// Import these Performance Monitoring classes at the top of your `.kt` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.Trace; val myTrace = Firebase.performance.newTrace("test_trace") myTrace.start() // code that you want to trace myTrace.stop()
Java
// Import these Performance Monitoring classes at the top of your `.java` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.Trace; Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start(); // code that you want to trace myTrace.stop();
(Opcional) Monitore métodos específicos usando @AddTrace
Os aplicativos Android também oferecem suporte à anotação @AddTrace
para instrumentar rastreamentos de código personalizados. Usando esse recurso, o rastreamento começa no início do método especificado e para quando o método é concluído, incluindo qualquer coisa invocada pelo método.
Por exemplo, você pode criar um rastreamento de código personalizado chamado onCreateTrace
que é executado quando o método onCreate()
é chamado.
Kotlin+KTX
// Import these Performance Monitoring classes at the top of your `.kt` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.AddTrace; // Add the `@AddTrace` annotation above the method you want to trace // the `enabled` argument is optional and defaults to true @AddTrace(name = "onCreateTrace", enabled = true) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) }
Java
// Import these Performance Monitoring classes at the top of your `.java` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.AddTrace; // Add the `@AddTrace` annotation above the method you want to trace @Override @AddTrace(name = "onCreateTrace", enabled = true /* optional */) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
Adicione métricas personalizadas a rastreamentos de código personalizados
Use a API Performance Monitoring Trace para adicionar métricas personalizadas a rastreamentos de código personalizados.
Observe o seguinte:
- Os nomes para 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 100 caracteres. - Cada rastreamento de código personalizado pode registrar até 32 métricas (incluindo a métrica Duração padrão).
Para adicionar uma métrica personalizada, adicione uma linha de código semelhante à seguinte sempre que o evento ocorrer. Por exemplo, essa métrica personalizada conta eventos relacionados ao desempenho que ocorrem em seu aplicativo, como acertos e erros de cache (usando exemplos de nomes de eventos de item_cache_hit
e item_cache_miss
e um incremento de 1
).
Kotlin+KTX
val myTrace = Firebase.performance.newTrace("test_trace") myTrace.start() // code that you want to trace (and log custom metrics) val item = cache.fetch("item") if (item != null) { myTrace.incrementMetric("item_cache_hit", 1) } else { myTrace.incrementMetric("item_cache_miss", 1) } myTrace.stop()
Java
Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start(); // code that you want to trace (and log custom metrics) Item item = cache.fetch("item"); if (item != null) { myTrace.incrementMetric("item_cache_hit", 1); } else { myTrace.incrementMetric("item_cache_miss", 1); } myTrace.stop();
Crie atributos personalizados para rastreamentos de código personalizados
Use a API Performance Monitoring Trace para incluir atributos customizados em rastreamentos de código customizados.Para usar atributos customizados, adicione código ao seu aplicativo que defina o atributo e o associe a um rastreamento de código customizado específico. Você pode definir o atributo personalizado a qualquer momento entre o início e o término do rastreamento.
Observe o seguinte:
Os nomes para atributos customizados devem atender aos seguintes requisitos:
- Nenhum espaço em branco à esquerda ou à direita, nenhum caractere de sublinhado (
_
) à esquerda - Sem espaços
- O comprimento máximo é de 32 caracteres
- Os caracteres permitidos para o nome são
AZ
,az
e_
.
- Nenhum espaço em branco à esquerda ou à direita, nenhum caractere de sublinhado (
Cada rastreamento de código customizado pode registrar até cinco atributos customizados.
Certifique-se de que os atributos personalizados não contenham informações que identifiquem pessoalmente um indivíduo para o Google.
Saiba mais sobre esta diretriz
Kotlin+KTX
Firebase.performance.newTrace("test_trace").trace { // Update scenario. putAttribute("experiment", "A") // Reading scenario. val experimentValue = getAttribute("experiment") // Delete scenario. removeAttribute("experiment") // Read attributes. val traceAttributes = this.attributes }
Java
Trace trace = FirebasePerformance.getInstance().newTrace("test_trace"); // Update scenario. trace.putAttribute("experiment", "A"); // Reading scenario. String experimentValue = trace.getAttribute("experiment"); // Delete scenario. trace.removeAttribute("experiment"); // Read attributes. Map<String, String> traceAttributes = trace.getAttributes();
Rastreie, visualize e filtre dados de desempenho
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 alterações de código que estão prejudicando o desempenho do seu aplicativo. Por exemplo, você pode configurar um alerta por email para sua equipe se a duração de um rastreamento de código personalizado 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.