Aggiungi monitoraggio personalizzato per richieste di rete specifiche (app Apple e Android)

Performance Monitoring raccoglie tracce per aiutarti a monitorare le prestazioni della tua app. Una traccia è un rapporto di dati sulle prestazioni acquisiti tra due momenti nella tua app.

Le 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 segnalate o potresti utilizzare una libreria diversa per effettuare richieste di rete. In questi casi, puoi utilizzare l'API di monitoraggio delle prestazioni per strumentare 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 delle richieste di rete personalizzate sono le stesse delle tracce delle richieste 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 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 Performance Monitoring 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 strumentare manualmente le richieste di rete personalizzate in Performance Monitoring, aggiungi un codice simile al seguente:

Veloce

Nota: questo prodotto Firebase non è disponibile su target macOS, Mac Catalyst, 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()

Obiettivo-C

Nota: questo prodotto Firebase non è disponibile su target macOS, Mac Catalyst, 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];
}

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 stanno degradando le prestazioni della tua app. Ad esempio, puoi configurare un avviso e-mail per il tuo team se il tempo di risposta per un pattern URL specifico supera una soglia impostata.