Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

特定のネットワークリクエストのカスタム監視を追加する(AppleおよびAndroidアプリ)

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Performance Monitoring は、アプリのパフォーマンスを監視するのに役立つトレースを収集します。トレースは、アプリ内の 2 つの時点の間でキャプチャされたパフォーマンス データのレポートです。

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

カスタム ネットワーク リクエスト トレースのデフォルトのメトリックは、パフォーマンス モニタリングによって自動的に収集されるネットワーク リクエスト トレースのメトリックと同じです。具体的には、応答時間、応答と要求のペイロード サイズ、および成功率です。カスタム ネットワーク リクエスト トレースは、カスタム メトリックの追加をサポートしていません。

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

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

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

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()

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 ) の追加もサポートしていますが、カスタム メトリックはサポートしていません。

次のステップ

  • アプリのパフォーマンスを低下させるネットワーク リクエストのアラートを設定します。たとえば、特定の URL パターンの応答時間が設定したしきい値を超えた場合に、チームの電子メール アラートを構成できます。