Ajouter une surveillance personnalisée pour des requêtes réseau spécifiques (applications Apple et Android)


Performance Monitoring collecte des traces pour vous aider à surveiller les performances de votre application. Une trace est un rapport sur les données de performances capturées entre deux points dans le temps dans votre application.

Les traces de requêtes réseau collectées automatiquement par Performance Monitoring incluent la plupart des requêtes réseau de votre application. Toutefois, certaines requêtes peuvent ne pas être signalées ou vous pouvez utiliser une autre bibliothèque pour effectuer des requêtes réseau. Dans ce cas, vous pouvez utiliser l'API Performance Monitoring pour instrumenter manuellement des traces de requêtes réseau personnalisées. Les traces de requêtes réseau personnalisées ne sont compatibles qu'avec les applications Apple et Android.

Les métriques par défaut d'une trace de requête réseau personnalisée sont les mêmes que celles des traces de requête réseau collectées automatiquement par Performance Monitoring, en particulier le temps de réponse, la taille de la charge utile de la réponse et de la requête, ainsi que le taux de réussite. Les traces de requêtes réseau personnalisées n'acceptent pas l'ajout de métriques personnalisées.

Dans votre code, vous définissez le début et la fin d'une trace de requête réseau personnalisée à l'aide des API fournies par le SDK Performance Monitoring.

Les traces de requêtes réseau personnalisées s'affichent dans la console Firebase, à côté des requêtes réseau que Performance Monitoring capture automatiquement (dans le sous-onglet Requêtes réseau du tableau des traces).

Ajouter des traces de requêtes réseau personnalisées

Utilisez l'API HttpMetric Performance Monitoring pour ajouter des traces de requêtes réseau personnalisées afin de surveiller des requêtes réseau spécifiques.

Pour instrumenter manuellement des requêtes réseau personnalisées dans Performance Monitoring, ajoutez du code semblable à celui-ci:

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

Les traces de requêtes réseau personnalisées permettent également d'ajouter des attributs personnalisés, mais pas de métriques personnalisées.

Étapes suivantes

  • Configurez des alertes pour les requêtes réseau qui dégradent les performances de votre application. Par exemple, vous pouvez configurer une alerte par e-mail pour votre équipe si le temps de réponse d'un format d'URL spécifique dépasse un seuil que vous définissez.