Adicione monitoramento personalizado para solicitações de rede específicas (aplicativos Apple e Android)

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.

Os rastreamentos de solicitação de rede coletados automaticamente pelo Monitoramento de desempenho incluem 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 . Os rastreamentos de solicitação de rede personalizados são compatíveis apenas com aplicativos Apple e Android.

As métricas padrão para um rastreamento de solicitação de rede personalizado são as mesmas dos rastreamentos de solicitação de rede coletados automaticamente pelo Monitoramento de desempenho, especificamente tempo de resposta, tamanho da carga útil de resposta e solicitação e taxa de sucesso. Os rastreamentos de solicitação de rede personalizados não oferecem suporte à adição de métricas personalizadas.

No seu código, você define o início e o fim de um rastreamento de solicitação de rede personalizado usando as APIs fornecidas pelo SDK do Performance Monitoring.

Os rastreamentos de solicitação de rede personalizados aparecem no console do Firebase junto com as solicitações de rede que o Monitoramento de desempenho captura automaticamente (na subguia Solicitações de rede da tabela de rastreamentos).

Adicionar rastreamentos de solicitação de rede personalizados

Use a API HttpMetric do Monitoramento de Desempenho para adicionar rastreamentos de solicitação de rede customizados para monitorar solicitações de rede específicas.

Para instrumentar manualmente solicitações de rede personalizadas no Monitoramento de desempenho, adicione um código semelhante ao seguinte:

Kotlin+KTX

val url = URL("https://www.google.com")
val metric = Firebase.performance.newHttpMetric(
    "https://www.google.com",
    FirebasePerformance.HttpMethod.GET,
)
metric.trace {
    val conn = url.openConnection() as HttpURLConnection
    conn.doOutput = true
    conn.setRequestProperty("Content-Type", "application/json")
    try {
        val outputStream = DataOutputStream(conn.outputStream)
        outputStream.write(data)
    } catch (ignored: IOException) {
    }

    // Set HttpMetric attributes
    setRequestPayloadSize(data.size.toLong())
    setHttpResponseCode(conn.responseCode)

    printStreamContent(conn.inputStream)

    conn.disconnect()
}

Java

HttpMetric metric =
        FirebasePerformance.getInstance().newHttpMetric("https://www.google.com",
                FirebasePerformance.HttpMethod.GET);
final URL url = new URL("https://www.google.com");
metric.start();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
try {
    DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream());
    outputStream.write(data);
} catch (IOException ignored) {
}
metric.setRequestPayloadSize(data.length);
metric.setHttpResponseCode(conn.getResponseCode());
printStreamContent(conn.getInputStream());

conn.disconnect();
metric.stop();

Os rastreamentos de solicitação de rede personalizados também suportam a adição de atributos personalizados , mas não de métricas personalizadas.

Próximos passos

  • 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ê.