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

Monitorowanie wydajności zbiera ślady , aby pomóc Ci monitorować wydajność Twojej aplikacji. Ślad to raport danych o wydajności przechwyconych między dwoma punktami w czasie w Twojej aplikacji.

Ślady żądań sieciowych zbierane automatycznie przez monitorowanie wydajności obejmują większość żądań sieciowych dotyczących Twojej aplikacji. Jednak niektóre żądania mogą nie być zgłaszane lub możesz użyć innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach można użyć interfejsu Performance Monitoring API do ręcznej instrumentacji śledzenia niestandardowych żądań sieciowych . Niestandardowe śledzenie żądań sieciowych jest obsługiwane tylko w przypadku aplikacji Apple i Android.

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

W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia żądania sieciowego za pomocą interfejsów API udostępnianych przez zestaw SDK do monitorowania wydajności.

Ślady niestandardowych żądań sieciowych pojawiają się w konsoli Firebase obok żądań sieciowych przechwytywanych automatycznie przez monitorowanie wydajności (na podkarcie Żądania sieciowe w tabeli śledzenia).

Dodaj niestandardowe ślady żądań sieciowych

Użyj interfejsu API monitorowania wydajności HTTPMetric ( 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];
}

Śledzenie niestandardowych żądań sieciowych obsługuje również dodawanie niestandardowych atrybutów ( Swift | Obj-C ), ale nie metryk niestandardowych.

Następne kroki

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