Il monitoraggio delle prestazioni raccoglie tracce per aiutarti a monitorare le prestazioni della tua app. Una traccia è un rapporto di dati sulle prestazioni acquisiti tra due punti nel tempo nella tua app.
Le tracce delle richieste di rete raccolte automaticamente dal 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, puoi utilizzare l'API Performance Monitoring per instrumentare 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 di richiesta di rete personalizzata sono le stesse di quelle per le tracce di richiesta di rete raccolte automaticamente dal monitoraggio delle prestazioni, 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 metriche personalizzate.
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 il monitoraggio delle prestazioni acquisisce automaticamente (nella sottoscheda Richieste di rete della tabella delle tracce).
Aggiungi tracce di richieste di rete personalizzate
Utilizza l'API HTTPMetric di monitoraggio delle prestazioni ( Swift | Obj-C ) per aggiungere tracce di richieste di rete personalizzate per monitorare richieste di rete specifiche.
Per instrumentare manualmente le richieste di rete personalizzate in Performance Monitoring, aggiungi codice simile al seguente:
Rapido
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];
}
Le tracce delle richieste di rete personalizzate supportano anche l'aggiunta di attributi personalizzati ( Swift | Obj-C ) ma non di metriche personalizzate.
Prossimi passi
- Imposta avvisi per le richieste di rete che riducono le prestazioni della tua app. Ad esempio, puoi configurare un avviso e-mail per il tuo team se il tempo di risposta per uno specifico pattern URL supera una soglia da te impostata.