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

Il monitoraggio delle prestazioni raccoglie tracce per aiutarti a monitorare le prestazioni della tua app. Una traccia è un report di dati sulle prestazioni acquisiti tra due momenti temporali nell'app.

Le tracce delle richieste di rete raccolte automaticamente da Monitoraggio delle prestazioni includono la maggior parte delle richieste di rete per la tua app. Tuttavia, alcune richieste potrebbero non essere segnalate oppure potresti utilizzare una libreria diversa per effettuare richieste di rete. In questi casi, puoi utilizzare l'API Performance Monitoring per strumentare 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 personalizzate sono le stesse delle tracce delle richieste di rete raccolte automaticamente da Performance Monitoring, in particolare il tempo di risposta, la dimensione del payload della risposta e della richiesta e la percentuale di successo. Le tracce delle richieste di rete personalizzate non supportano l'aggiunta di parametri personalizzati.

Nel tuo codice, definisci l'inizio e la fine di una traccia di richiesta di rete personalizzata utilizzando le API fornite da Performance Monitoring SDK.

Le tracce delle richieste di rete personalizzate vengono visualizzate nella console Firebase insieme alle richieste di rete che Performance Monitoring acquisisce automaticamente (nella sottoscheda Richieste di rete della tabella delle tracce).

Aggiungi tracce di richieste di rete personalizzate

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

Per strumentare manualmente le richieste di rete personalizzate in Monitoraggio delle prestazioni, aggiungere un codice simile al seguente:

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

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

Prossimi passi

  • Imposta avvisi per le richieste di rete che stanno riducendo le prestazioni della tua app. Ad esempio, puoi configurare un avviso via email per il tuo team se il tempo di risposta per un modello URL specifico supera una soglia impostata.