Aggiungere un monitoraggio personalizzato per richieste di rete specifiche (app Apple e Android)


Performance Monitoring raccoglie tracce per aiutarti a monitorare il rendimento della tua app. Una traccia è un report dei dati sul rendimento acquisiti tra due punti nel tempo in your app.

Le tracce delle richieste di rete raccolte automaticamente da Performance Monitoring includono la maggior parte delle richieste di rete per la tua app. Tuttavia, alcune richieste potrebbero non essere segnalate o potresti utilizzare una libreria diversa per effettuare richieste di rete. In questi casi, puoi utilizzare l'API Performance Monitoring per instrumentare manualmente le tracce delle richieste di rete personalizzate. Le tracce delle richieste di rete personalizzate sono supportate solo per le app Apple e Android.

Le metriche predefinite per una traccia delle richieste di rete personalizzata sono le stesse di quelle per le tracce delle richieste di rete raccolte automaticamente da Performance Monitoring, in particolare il tempo di risposta, le dimensioni del payload di risposta e richiesta e la percentuale di successo. Le tracce delle richieste di rete personalizzate non supportano l'aggiunta di metriche personalizzate.

Nel codice, definisci l'inizio e la fine di una traccia delle richieste di rete personalizzata utilizzando le API fornite dall'Performance Monitoring SDK.

Le tracce delle richieste di rete personalizzate vengono visualizzate nella Firebase console insieme alle richieste di rete acquisite automaticamente da Performance Monitoring (nella scheda secondaria Richieste di rete della tabella delle tracce).

Aggiungere tracce delle richieste di rete personalizzate

Utilizza l'Performance Monitoring API HttpMetric di Performance Monitoring per aggiungere tracce delle richieste di rete personalizzate per monitorare richieste di rete specifiche.

Per instrumentare manualmente le richieste di rete personalizzate in Performance Monitoring, aggiungi un codice simile al seguente:

Kotlin

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();

Le tracce delle richieste di rete personalizzate supportano anche l'aggiunta di attributi personalizzati ma non di metriche personalizzate.

Passaggi successivi

  • Configura gli avvisi per le richieste di rete che peggiorano il rendimento della tua app. Ad esempio, puoi configurare un avviso via email per il tuo team se il tempo di risposta per un pattern URL specifico supera una soglia che hai impostato.