Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

特定のネットワーク リクエスト用のカスタム モニタリングを追加する(iOS アプリと Android アプリ)

Performance Monitoring では、トレースを収集してアプリのパフォーマンスをモニタリングできます。トレースとは、アプリ内の 2 つの時点の間でキャプチャされたパフォーマンス データのレポートです。

Performance Monitoring によって自動的に収集されるネットワーク リクエスト トレースには、アプリのほとんどのネットワーク リクエストが含まれます。ただし、リクエストの一部が報告されない場合や、別のライブラリを使用してネットワーク リクエストを発行する場合もあります。このような場合には、Performance Monitoring API を使用してカスタム ネットワーク リクエスト トレースを手動で計測できます。カスタム ネットワーク リクエスト トレースは、iOS アプリと Android アプリでのみサポートされています。

カスタム ネットワーク リクエスト トレースのデフォルトの指標は、Performance Monitoring によって自動的に収集されるネットワーク リクエスト トレース(具体的には応答時間、レスポンスとリクエストのペイロード サイズ、成功率)の指標と同じです。カスタム ネットワーク リクエスト トレースでは、カスタム指標の追加がサポートされていません。

コードで、Performance Monitoring SDK に用意された API を使用して、カスタム ネットワーク リクエスト トレースの開始と終了を定義します。

カスタム ネットワーク リクエスト トレースは、Performance Monitoring によって自動的にキャプチャされるネットワーク リクエストとともに Firebase コンソール(のトレース テーブルの [ネットワーク リクエスト] サブタブ)に表示されます。

カスタム ネットワーク リクエスト トレースを追加する

Performance Monitoring の HTTPMetric API(Swift | Obj-C)を使用してカスタム ネットワーク リクエスト トレースを追加し、特定のネットワーク リクエストをモニタリングします。

Performance Monitoring でカスタム ネットワーク リクエストを手動で計測するには、次のようなコードを追加します。

Swift

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

@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)の追加もサポートされていますが、カスタム指標はサポートされていません。