Belirli ağ istekleri için özel izleme ekleme (Apple ve Android uygulamaları)


Performance Monitoring, uygulamanızın performansını izlemenize yardımcı olmak için izler toplar. İz, uygulamanızda iki zaman noktası arasında yakalanan performans verilerinin raporudur.

Performance Monitoring tarafından otomatik olarak toplanan ağ isteği izleri, uygulamanız için çoğu ağ isteğini içerir. Ancak bazı istekler raporlanmayabilir veya ağ istekleri yapmak için farklı bir kitaplık kullanabilirsiniz. Bu gibi durumlarda Performance Monitoring API'yi kullanarak özel ağ isteği izlerini manuel olarak ölçebilirsiniz. Özel ağ isteği izleri yalnızca Apple ve Android uygulamalarında desteklenir.

Özel ağ isteği izinin varsayılan metrikleri, Performance Monitoring tarafından otomatik olarak toplanan ağ isteği izlerinin metrikleriyle aynıdır. Bu metrikler özellikle yanıt süresi, yanıt ve istek yükü boyutu ile başarı oranıdır. Özel ağ isteği izleri, özel metrik eklemeyi desteklemez.

Kodunuzda, Performance Monitoring SDK'sı tarafından sağlanan API'leri kullanarak özel bir ağ isteği izinin başlangıcını ve sonunu tanımlarsınız.

Özel ağ isteği izleri, Firebase konsolunda Performance Monitoring tarafından otomatik olarak yakalanan ağ istekleriyle birlikte (izler tablosunun Ağ istekleri alt sekmesinde) görünür.

Özel ağ isteği izleri ekleme

Belirli ağ isteklerini izlemek için özel ağ isteği izleri eklemek üzere Performance Monitoring HTTPMetric API'yi (Swift | Obj-C) kullanın.

Performance Monitoring uygulamasında özel ağ isteklerini manuel olarak ölçmek için aşağıdakine benzer bir kod ekleyin:

Swift

Not: Bu Firebase ürünü macOS, Mac Catalyst ve watchOS hedeflerinde kullanılamaz.
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

Not: Bu Firebase ürünü macOS, Mac Catalyst ve watchOS hedeflerinde kullanılamaz.
@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];
}

Özel ağ isteği izleri, özel özellikler eklemeyi de destekler (Swift | Obj-C) ancak özel metrikleri desteklemez.

Sonraki adımlar

  • Uygulamanızın performansını düşüren ağ istekleri için uyarılar ayarlayın. Örneğin, belirli bir URL kalıbının yanıt süresi belirlediğiniz eşiği aşarsa ekibiniz için bir e-posta uyarısı yapılandırabilirsiniz.