افزودن پایش سفارشی برای درخواست‌های شبکه خاص (برنامه‌های Apple و Android)


Performance Monitoring ردگیری‌ها را جمع‌آوری می‌کند تا به شما کمک کند عملکرد برنامه‌تان را پایش کنید. ردگیری گزارشی از داده‌های عملکرد است که بین دو نقطه زمانی در برنامه‌تان ثبت شده است.

ردپاهای درخواست شبکه که به‌طور خودکار توسط Performance Monitoring جمع‌آوری شده‌اند شامل اکثر درخواست‌های شبکه برای برنامه شما است. بااین‌حال، ممکن است برخی‌از درخواست‌ها گزارش نشوند یا ممکن است از کتابخانه دیگری برای درخواست‌های شبکه استفاده کنید. در این موارد، می‌توانید از میانای برنامه‌سازی کاربردی Performance Monitoring برای ابزارسازی دستی ردپاهای درخواست شبکه سفارشی استفاده کنید. ردپای درخواست شبکه سفارشی فقط برای برنامه‌های Apple و Android پشتیبانی می‌شود.

سنجه‌های پیش‌فرض برای ردگیری درخواست شبکه سفارشی همانند سنجه‌های ردگیری درخواست شبکه است که به‌طور خودکار توسط Performance Monitoring جمع‌آوری می‌شود، به‌ویژه زمان پاسخ، اندازه بار خالص پاسخ و درخواست، و نرخ موفقیت. ردگیری‌های درخواست شبکه سفارشی از افزودن سنجه‌های سفارشی پشتیبانی نمی‌کنند.

در کدتان، ابتدا و انتهای ردگیری درخواست شبکه سفارشی را بااستفاده از میاناهای برنامه‌سازی کاربردی ارائه‌شده توسط کیت توسعه نرم‌افزار Performance Monitoring تعریف می‌کنید.

ردپاهای درخواست شبکه سفارشی در کنسول Firebase در کنار درخواست‌های شبکه‌ای که Performance Monitoring به‌طور خودکار ضبط می‌کند (در زبانه فرعی درخواست‌های شبکه جدول ردپاها) نشان داده می‌شود.

افزودن ردپای درخواست شبکه سفارشی

از Performance Monitoring HTTPMetric API (Swift | Obj-C) استفاده کنید تا ردپای درخواست شبکه سفارشی را برای نظارت بر درخواست‌های شبکه خاص اضافه کنید.

برای ابزارسازی دستی درخواست‌های شبکه سفارشی در Performance Monitoring، کدی مشابه کد زیر اضافه کنید:

Swift

توجه: این محصول Firebase در macOS،‏ Mac Catalyst، و 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

توجه: این محصول Firebase در macOS،‏ Mac Catalyst، و 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];
}

ردگیری‌های درخواست شبکه سفارشی از افزودن مشخصه‌های سفارشی نیز پشتیبانی می‌کنند (Swift | Obj-C) اما از سنجه‌های سفارشی پشتیبانی نمی‌کنند.

مراحل بعدی

  • برای درخواست‌های شبکه‌ای که عملکرد برنامه‌تان را کاهش می‌دهند، هشدار تنظیم کنید. برای مثال، می‌توانید هشدار ایمیلی برای تیمتان پیکربندی کنید تا اگر زمان پاسخ برای الگوی نشانی وب خاصی از آستانه‌ای که تنظیم کرده‌اید فراتر رفت، هشدار دریافت کنند.