Performance Monitoring recopila seguimientos para ayudarte a supervisar el rendimiento de tu app. Un seguimiento es un informe de datos de rendimiento que se capturan entre dos momentos en tu app.
Los seguimientos de solicitudes de red que recopila Performance Monitoring automáticamente incluyen la mayoría de las solicitudes de red de tu app. Sin embargo, es posible que no se informen algunas solicitudes o que uses una biblioteca diferente para hacer solicitudes de red. En estos casos, puedes usar la API de Performance Monitoring para instrumentar manualmente los seguimientos personalizados de solicitudes de red. Los seguimientos de solicitudes de red personalizados solo son compatibles con las apps para Apple y Android.
Las métricas predeterminadas para un seguimiento de solicitud de red personalizado son las mismas que las de los seguimientos de solicitudes de red que recopila Performance Monitoring automáticamente: el tiempo de respuesta, el tamaño de la carga útil de la solicitud y de la respuesta, y la tasa de éxito. Los seguimientos de solicitudes de red personalizados no admiten agregar métricas personalizadas.
En el código, tú defines el inicio y el final de un seguimiento de solicitud de red personalizado con las APIs que proporciona el SDK de Performance Monitoring.
Los seguimientos de solicitudes de red personalizados aparecen en la Firebase console junto con solicitudes de red que Performance Monitoring captura automáticamente (en la pestaña secundaria Solicitudes de red de la tabla de seguimientos).
Agrega seguimientos de solicitudes de red personalizados
Usa la API de HTTPMetric de Performance Monitoring (Swift | Obj-C) a fin de agregar seguimientos de solicitudes de red personalizados para supervisar solicitudes de red específicas.
Para instrumentar manualmente las solicitudes de red personalizadas en Performance Monitoring, agrega código similar al siguiente:
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];
}
Los seguimientos de solicitudes de red personalizados también permiten agregar atributos personalizados (Swift | Obj-C), pero no métricas personalizadas.
Próximos pasos
- Configura alertas para las solicitudes de red que degraden el rendimiento de tu app. Por ejemplo, puedes configurar una alerta por correo electrónico para tu equipo si el tiempo de respuesta de un patrón de URL específico supera un umbral que estableciste.