Dodaj niestandardowe monitorowanie dla określonych żądań sieciowych (aplikacje Apple i Android)

Monitorowanie wydajności zbiera ślady , które pomagają monitorować wydajność aplikacji. Ślad to raport danych dotyczących wydajności zarejestrowanych między dwoma punktami w czasie w aplikacji.

Ślady żądań sieciowych zbierane automatycznie przez monitorowanie wydajności obejmują większość żądań sieciowych dla Twojej aplikacji. Jednak niektóre żądania mogą nie zostać zgłoszone lub możesz użyć innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach można użyć interfejsu API monitorowania wydajności do ręcznego instrumentowania niestandardowych śladów żądań sieciowych . Niestandardowe ślady żądań sieciowych są obsługiwane tylko w przypadku aplikacji Apple i Android.

Domyślne metryki dla niestandardowego śledzenia żądań sieciowych są takie same, jak te dla śladów żądań sieciowych zbieranych automatycznie przez monitorowanie wydajności, w szczególności czas odpowiedzi, rozmiar ładunku odpowiedzi i żądań oraz współczynnik powodzenia. Niestandardowe ślady żądań sieciowych nie obsługują dodawania niestandardowych metryk.

W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia żądań sieciowych przy użyciu interfejsów API udostępnianych przez zestaw SDK do monitorowania wydajności.

Niestandardowe ślady żądań sieciowych pojawiają się w konsoli Firebase wraz z żądaniami sieciowymi, które Monitorowanie wydajności przechwytuje automatycznie (w podkarcie Żądania sieciowe tabeli śladów).

Dodaj niestandardowe ślady żądań sieciowych

Użyj interfejsu API HTTPMetric monitorowania wydajności ( Swift | Obj-C ), aby dodać niestandardowe ślady żądań sieciowych w celu monitorowania określonych żądań sieciowych.

Aby ręcznie instrumentować niestandardowe żądania sieciowe w Monitorowaniu wydajności, dodaj kod podobny do następującego:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst i 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()

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst i 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];
}

Niestandardowe ślady żądań sieciowych obsługują również dodawanie niestandardowych atrybutów ( Swift | Obj-C ), ale nie niestandardowych metryk.

Następne kroki

  • Skonfiguruj alerty dla żądań sieciowych, które obniżają wydajność Twojej aplikacji. Możesz na przykład skonfigurować alert e-mail dla swojego zespołu, jeśli czas odpowiedzi dla określonego wzorca adresu URL przekroczy ustawiony próg.