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


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

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

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

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

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

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

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

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

سویفت

توجه: این محصول 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()

هدف-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 ) پشتیبانی می‌کند اما معیارهای سفارشی را ندارد.

مراحل بعدی