Dodawanie niestandardowego monitorowania dla określonych żądań sieciowych (aplikacje Apple i na Androida)

Monitorowanie wydajności zbiera dane, aby ułatwić Ci monitorowanie wydajności aplikacji. Ślad to raport z danymi o wydajności zarejestrowanych między 2 punktami w czasie w aplikacji.

Logi czasu żądań sieciowych zbierane automatycznie przez Monitorowanie wydajności obejmują większość żądań sieciowych dotyczących Twojej aplikacji. Niektóre żądania mogą jednak nie być raportowane lub możesz używać innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach możesz użyć interfejsu Performance Monitoring API, aby ręcznie instrumentować niestandardowe logi czasu żądań sieciowych. Niestandardowe ślady żądań sieciowych są obsługiwane tylko w aplikacjach Apple i na Androida.

Domyślne wskaźniki dla niestandardowego śledzenia żądań sieciowych są takie same jak dla logów czasu żądań sieciowych zbieranych automatycznie przez monitorowanie wydajności. Chodzi konkretnie o czas odpowiedzi, rozmiar ładunku odpowiedzi i żądania oraz wskaźnik sukcesu. Niestandardowe logi czasu żądań sieciowych nie obsługują dodawania niestandardowych wskaźników.

W kodzie określasz początek i koniec niestandardowego śledzenia żądań sieciowych za pomocą interfejsów API udostępnianych przez pakiet SDK Performance Monitoring.

Niestandardowe logi czasu żądań sieciowych pojawiają się w konsoli Firebase obok żądań sieciowych, które są automatycznie rejestrowane przez Monitorowanie wydajności (na podkarcie Żądania sieciowe w tabeli logów czasu).

Dodawanie niestandardowych logów czasu żądań sieciowych

Użyj interfejsu Performance Monitoring API HTTPMetric API (Swift | Obj-C), aby dodać niestandardowe logi czasu żądań sieciowych do monitorowania konkretnych żądań sieciowych.

Aby ręcznie skonfigurować niestandardowe żądania sieciowe w Monitorowaniu wydajności, dodaj kod podobny do tego:

Swift

Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem 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()

Objective-C

Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem 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 logi czasu żądań sieciowych obsługują też dodawanie atrybutów niestandardowych (Swift | Obj-C), ale nie wskaźników niestandardowych.

Dalsze kroki

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