Ajoutez une surveillance personnalisée pour des requêtes 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 moments dans votre application.

Les traces de requêtes réseau collectées automatiquement par Performance Monitoring incluent la plupart des requêtes réseau pour votre application. Cependant, 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 ces cas, vous pouvez utiliser l'API Performance Monitoring pour instrumenter manuellement les traces de requêtes réseau personnalisées . Les traces de requêtes réseau personnalisées ne sont prises en charge que pour les applications Apple et Android.

Les métriques par défaut d'une trace de demande réseau personnalisée sont les mêmes que celles des traces de demande réseau automatiquement collectées par Performance Monitoring, en particulier le temps de réponse, la taille de la charge utile de réponse et de demande et le taux de réussite. Les traces de requêtes réseau personnalisées 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 Performance Monitoring.

Les traces de requêtes réseau personnalisées apparaissent dans la console Firebase à côté des requêtes réseau capturées automatiquement par Performance Monitoring (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 de surveillance des performances ( Swift | Obj-C ) pour ajouter des traces de requêtes réseau personnalisées afin de surveiller des requêtes réseau spécifiques.

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

Rapide

Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et watchOS.
guard let metric = HTTPMetric(url: "https://www.google.com", httpMethod: .get) else { return }

metric.start()
guard let url = URL(string: "https://www.google.com") else { return }
let request: URLRequest = URLRequest(url:url)
let session = URLSession(configuration: .default)
let dataTask = session.dataTask(with: request) { (urlData, response, error) in
        if let httpResponse = response as? HTTPURLResponse {
         metric.responseCode = httpResponse.statusCode
        }
        metric.stop()
}
dataTask.resume()

Objectif c

Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et watchOS.
@property (nonatomic) FIRHTTPMetric *metric;

- (void)beginManualNetworkInstrumentation {
  self.metric =
      [[FIRHttpMetric alloc] initWithURL:[NSURL URLWithString:@"https://www.google.com"]
                              HTTPMethod:FIRHTTPMethodGET];

  [self.metric start];

  NSURLRequest *request =
      [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]];
  NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                                delegate:self];
  [connection resume];
}

- (void)connection:(NSURLConnection *)connection
    didReceiveResponse:(NSURLResponse *) response {
  NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response
  self.metric.responseCode = httpResponse.statusCode;
  [self.metric stop];
}

Les traces de requêtes réseau personnalisées prennent également en charge l'ajout d'attributs personnalisés ( Swift | Obj-C ), mais pas de métriques personnalisées.

Prochaines étapes

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