Agrega supervisión personalizada en solicitudes de red específicas (apps para Apple 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 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 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

Nota: Este producto de Firebase no está disponible en los destinos de macOS, Mac Catalyst ni watchOS.
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

Nota: Este producto de Firebase no está disponible en los destinos de macOS, Mac Catalyst ni watchOS.
@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.