Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

Les traces de demande réseau collectées automatiquement par Performance Monitoring incluent la plupart des demandes réseau pour votre application. Cependant, certaines requêtes peuvent ne pas être signalées ou vous pouvez utiliser une bibliothèque différente pour effectuer des requêtes réseau. Dans ces cas, vous pouvez utiliser l'API de surveillance des performances pour instrumenter manuellement les traces de demande réseau personnalisées . Les suivis de demande réseau personnalisés ne sont pris en charge que pour les applications Apple et Android.

Les métriques par défaut pour une trace de demande réseau personnalisée sont les mêmes que celles des traces de demande réseau automatiquement collectées par la surveillance des performances, en particulier le temps de réponse, la taille de la charge utile de la réponse et de la demande et le taux de réussite. Les suivis de demande réseau personnalisés ne prennent pas en charge l'ajout de métriques personnalisées.

Dans votre code, vous définissez le début et la fin d'une trace de demande réseau personnalisée à l'aide des API fournies par le SDK de surveillance des performances.

Les traces de requête réseau personnalisées apparaissent dans la console Firebase à côté des requêtes réseau capturées automatiquement par la surveillance des performances (dans le sous-onglet Requêtes réseau du tableau des traces).

Ajouter des suivis de demande réseau personnalisés

Utilisez l' API Performance Monitoring HttpMetric pour ajouter des suivis de demande réseau personnalisés afin de surveiller des demandes réseau spécifiques.

Pour instrumenter manuellement les requêtes réseau personnalisées dans Performance Monitoring, ajoutez un code similaire au suivant :

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

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

Les suivis de demande réseau personnalisés prennent également en charge l'ajout d'attributs personnalisés , mais pas de métriques personnalisées.

Prochaines étapes

  • Configurez des alertes pour les demandes 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 pour un modèle d'URL spécifique dépasse un seuil que vous avez défini.