Performance Monitoring raccoglie tracce per aiutarti a monitorare le prestazioni della tua app. R è un report dei dati sulle prestazioni acquisiti tra due momenti nel la tua app.
La tracce delle richieste di rete raccolte automaticamente da Performance Monitoring includono la maggior parte delle richieste di rete per la tua app. Tuttavia, alcune richieste potrebbero non essere o potresti utilizzare una libreria diversa per effettuare richieste di rete. In queste casi, puoi utilizzare l'API Performance Monitoring per instrumentare manualmente tracce di richieste di rete personalizzate. Le tracce delle richieste di rete personalizzate sono supportata per le app Apple e Android.
Le metriche predefinite per una traccia di richieste di rete personalizzata sono le stesse di quelle per le tracce delle richieste di rete raccolte automaticamente da Performance Monitoring, nello specifico tempo di risposta, dimensioni del payload di risposta e richiesta e percentuale 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 personalizzata della richiesta di rete utilizzando le API fornite dall'SDK Performance Monitoring.
Le tracce delle richieste di rete personalizzate vengono visualizzate nella console Firebase insieme alle richieste di rete che Performance Monitoring acquisisce automaticamente (nella scheda secondaria Richieste di rete della tabella delle tracce).
Aggiungi tracce di richieste di rete personalizzate
Utilizza l'API HTTPMetrica Performance Monitoring (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 un codice simile a:
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()
Objective-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 metriche personalizzate.
Passaggi successivi
- Configura avvisi per le richieste di rete in fase di riduzione il rendimento della tua app. Ad esempio, puoi configurare un avviso via email per il tuo team se il tempo di risposta per uno specifico pattern URL supera una soglia che hai impostato.