Dodawanie niestandardowego monitorowania na potrzeby konkretnych żądań sieciowych (aplikacje Apple i na Androida)

Monitorowanie wydajności zbiera ślady, które ułatwiają monitorowanie działania aplikacji. O jest raport zawierający dane dotyczące wydajności zebrane między dwoma punktami w czasie do aplikacji.

dane śledzenia żądań sieciowych automatycznie zbierane przez Monitor wydajności uwzględnianie większości żądań sieciowych dla aplikacji. Niektóre żądania mogą jednak nie zostać lub używasz innej biblioteki do wysyłania żądań sieciowych. W tych możesz za pomocą interfejsu Performance Monitoring API niestandardowych danych śledzenia żądań sieciowych. Niestandardowe logi czasu żądań sieciowych to tylko obsługiwane w aplikacjach Apple i na Androida.

Domyślne dane niestandardowego śledzenia żądań sieciowych są takie same jak w przypadku dane śledzenia żądań sieciowych automatycznie zbierane przez Monitor wydajności, czas odpowiedzi, odpowiedź i rozmiar ładunku żądań, a także wskaźnik sukcesu. Niestandardowy zakres dat w śladach żądań sieciowych nie można dodawać niestandardowych wskaźników.

W swoim kodzie definiujesz początek i koniec niestandardowego żądania sieciowego śledzić za pomocą interfejsów API udostępnianych przez pakiet SDK Performance Monitoring.

Niestandardowe logi żądań sieciowych wyświetlają się w konsoli Firebase obok żądań sieciowych rejestrowanych automatycznie przez Monitorowanie wydajności (na podkarcie Żądania sieciowe tabeli logów czasu).

Dodaj niestandardowe logi czasu żądań sieciowych

Używanie interfejsu Performance Monitoring HTTPMetric API (Swift, | Obj-C) możesz dodać niestandardowe logi czasu żądań sieciowych w celu monitorowania konkretnych żądań sieciowych.

Aby ręcznie instrumentować niestandardowe żądania sieci w Monitorowaniu wydajności, dodaj podobny kod na:

Swift

Uwaga: ta usługa Firebase nie jest dostępna na systemy docelowe 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 systemy docelowe 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 danych niestandardowych.

Dalsze kroki

  • Skonfiguruj alerty o żądaniach sieciowych, które pogarszają wyniki wydajność aplikacji. Możesz na przykład skonfigurować alert e-mail dla: Twojego zespołu, jeśli czas odpowiedzi dla określonego wzorca adresu URL przekracza wyznaczoną przez Ciebie wartość progową.