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


Performance Monitoring zbiera ślady, aby ułatwić Ci monitorowanie skuteczności aplikacji. Ślad to raport danych o skuteczności, który jest rejestrowany w aplikacji między 2 momentami w czasie.

Logi czasu żądań sieciowych zbierane automatycznie przez Performance Monitoring obejmują większość żądań sieciowych Twojej aplikacji. Niektóre żądania mogą jednak nie być zgłaszane lub możesz używać innej biblioteki do wysyłania żądań sieciowych. W takich przypadkach możesz ręcznie zaimplementować Performance Monitoring API, aby tworzyć niestandardowe ścieżki żądań sieci. Niestandardowe logi żądań sieciowych są obsługiwane tylko w przypadku aplikacji na urządzenia z systemem Android i Apple.

Domyślne dane w przypadku niestandardowego logowania żądań sieciowych są takie same jak dane logowania żądań sieciowych automatycznie zbierane przez Performance Monitoring, a w szczególności czas odpowiedzi, rozmiar odpowiedzi i zapytania oraz odsetek powodzeń. Niestandardowe ścieżki żądań sieci nie obsługują dodawania niestandardowych rodzajów danych.

W kodzie określasz początek i koniec niestandardowego śledzenia żądań sieci za pomocą interfejsów API dostępnych w pakiecie SDK Performance Monitoring.

Niestandardowe logi czasu żądań sieciowych pojawiają się w konsoli Firebase obok żądań sieciowych, które Performance Monitoring rejestruje automatycznie (w podzakładce Żądania sieciowe w tabeli z logami).

Dodawanie niestandardowych logów żądań sieciowych

Użyj interfejsu Performance Monitoring HTTPMetric API (Swift | Obj-C), aby dodać niestandardowe ścieżki żądań sieciowych, które pozwolą Ci monitorować konkretne żądania sieciowe.

Aby ręcznie zaimplementować niestandardowe żądania sieci w pliku Performance Monitoring, dodaj kod podobny do tego:

Swift

Uwaga: ta usługa Firebase nie jest dostępna w przypadku docelowych platform 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 w przypadku docelowych platform 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 śledzenia żądań sieci obsługują też dodawanie atrybutów niestandardowych (Swift | Obj-C), ale nie danych niestandardowych.

Dalsze kroki

  • Skonfiguruj alerty dotyczące żądań sieciowych, które pogarszają działanie aplikacji. Możesz na przykład skonfigurować alert e-mailowy dla swojego zespołu, jeśli czas odpowiedzi na określony wzorzec adresu URL przekroczy ustawiony przez Ciebie próg.