Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Agrega supervisión personalizada en solicitudes de red específicas (apps para iOS y Android)

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 de forma manual los seguimientos personalizados de solicitudes de red. Los seguimientos de solicitudes de red personalizados solo son compatibles con las apps para iOS 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 API que proporciona el SDK de Performance Monitoring.

Los seguimientos de solicitudes de red personalizados aparecen en Firebase console junto con las 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.