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

Monitoraggio del rendimento Raccoglie tracce per aiutare a monitorare le prestazioni della vostra applicazione. Una traccia è un report dei dati sulle prestazioni acquisiti tra due momenti nel tempo nella tua app.

Le richiesta tracce di rete raccolte automaticamente monitoraggio delle prestazioni 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, è possibile utilizzare il Monitoraggio del rendimento API per manualmente richiesta di rete tracce strumento personalizzati. Le tracce delle richieste di rete personalizzate sono supportate solo per le app iOS e Android.

Le metriche predefinite per una traccia di richiesta di rete personalizzata sono le stesse di quelle per le tracce di richiesta di rete raccolte automaticamente da Performance Monitoring, in particolare tempo di risposta, dimensione del payload di richiesta e risposta e tasso 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 di richiesta di rete personalizzata utilizzando le API fornite da Performance Monitoring SDK.

Richiesta tracce di rete personalizzati vengono visualizzati nella console Firebase accanto alle richieste di rete che Monitoraggio del rendimento automaticamente cattura (in Rete richieste sottoscheda del tavolo tracce).

Aggiungi tracce di richiesta di rete personalizzate

Utilizzare il Monitoraggio del rendimento HTTPMetric API ( Swift | Obj-C ) per aggiungere richiesta di rete su misura tracce di monitorare le richieste di rete specifici.

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

Swift

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

Obiettivo-C

@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];
}

Richiesta tracce di rete su misura anche l'aggiunta del supporto attributi personalizzati ( Swift | Obj-C ), ma non metriche personalizzate.