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

HTTP / Sネットワークリクエストのパフォーマンスデータについて学ぶ(任意のアプリ)

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

Performance Monitoring は、トレースを使用して、アプリ内の監視対象プロセスに関するデータを収集します。トレースは、アプリ内の 2 つの時点の間でキャプチャされたデータを含むレポートです。

すべての種類のアプリについて、Performance Monitoring は、アプリによって発行されたネットワーク リクエストごとに、 HTTP/S ネットワーク リクエスト トレースと呼ばれるトレースを自動的に収集します。これらのトレースは、アプリがサービス エンドポイントにリクエストを発行してから、そのエンドポイントからのレスポンスが完了するまでの時間の指標を収集します。アプリがリクエストを送信するエンドポイントについて、Performance Monitoring はいくつかの指標をキャプチャします。

  • 応答時間 — 要求が行われてから応答が完全に受信されるまでの時間

  • 応答ペイロード サイズ — アプリによってダウンロードされたネットワーク ペイロードのバイト サイズ

  • リクエスト ペイロード サイズ — アプリによってアップロードされたネットワーク ペイロードのバイト サイズ

  • 成功率 — 応答総数に対する成功応答 (100 から 399 の範囲の応答コード) の割合

これらのトレースからのデータは、パフォーマンスダッシュボードの下部にあるトレース テーブルの [ネットワーク リクエスト] サブタブで表示できます (コンソールの使用については、このページで後述します)。

Performance Monitoring は、次のネットワーク ライブラリを使用するネットワーク リクエストの指標を自動的に収集します。

ネットワーク リクエスト データの集約をカスタマイズする

すぐに使用できるツールとネットワーク リクエスト用のデータ集約に加えて、Performance Monitoring は次のオプションもサポートしています。

  • ネットワーク リクエスト トレースを手動で計測する:すぐに使用できるモニタリングには、アプリのほとんどのネットワーク リクエストが含まれます。ただし、一部のリクエストが報告されない場合や、別のライブラリを使用してネットワーク リクエストを作成する場合があります。このような場合、Performance Monitoring API を使用して、カスタム ネットワーク リクエスト トレースを手動で計測できます。
  • カスタム URL パターンでデータを集計する: Firebase が派生した自動 URL パターン マッチングでキャプチャしていない特定の URL がある場合、カスタム URL パターンを作成して、特定の URL セットを経時的に監視できます。
  • 成功率の計算方法をカスタマイズする:特定の API エンドポイントでエラー コードが予期される場合や、アプリで既に処理されている場合があります。このような場合、成功率の計算方法を構成し、アプリのネットワーク呼び出しの成功率をより正確に監視できます。

URL パターンでのデータ集約

Firebase Performance Monitoring は、同様のネットワーク リクエストのデータを自動的に集計して、ネットワーク リクエストのパフォーマンスの傾向を把握するのに役立ちます。

リクエストごとに、Firebase はネットワーク リクエストの URL が URL パターンと一致するかどうかを確認します。リクエスト URL が URL パターンと一致する場合、Firebase は URL パターンに基づいてリクエストのデータを自動的に集約します。 Firebase は、Firebase コンソールのパフォーマンスダッシュボードの [ネットワーク] タブに、URL パターンとその集計データを表示します。

URL パターンとは

URL パターンには、ドメインと URL パスに一致するパターンが含まれます (例: example.com/*/animals/** )。

  • URL パターンには、次のパス セグメントを含めることができます。

    • プレーン テキスト — 正確な文字列に一致
    • * — 1 つのパス セグメント内の任意の文字列に一致します
    • ** — 任意のパス サフィックスに一致
  • URL パターンは次のいずれかです。

例: 次の URL リクエストはいずれも、URL パターンexample.com/*/animals/**に一致する可能性があります。

  • example.com/singapore/animals
  • example.com/australia/animals/spiders
  • example.com/australia/animals/marsupials/koala.png

URL パターンのドメインには、最初のセグメントとして*を含めることもできます (例: *.example.com/*/fruits/** )。

Firebase は、各リクエストを1 つの URL パターンのみにマッピングします。カスタム URL パターンを構成している場合、Firebase は最初にリクエスト URL をそれらのパターンに一致させようとします。一致するカスタム URL パターンが見つからない場合、Firebase はリクエスト URL を最も代表的な自動 URL パターンと照合します。次のセクションでは、自動 URL パターンとカスタム URL パターンについて詳しく説明します。

自動 URL パターン

構成を行わなくても、Performance Monitoring は、アプリのリクエストを自動 URL パターンと照合することで、アプリの最新の使用状況を反映しようとします。

自動 URL パターン マッチングはどのように機能しますか?

Firebase は、各リクエストを、アプリから送信されたリクエストから導き出した最も代表的な自動 URL パターンと照合します。ただし、Firebase は最初にリクエスト URL を構成済みのカスタム URL パターンと照合しようとすることに注意してください。

以下は、Firebase がリクエストをアプリの最も代表的な自動 URL パターンと照合する方法の基本的な例です。

  1. アプリは、次のような URL に多くのリクエストを送信します。

    • example.com/germany/animals/bears
    • example.com/germany/animals/birds
    • example.com/germany/cars

    Firebase は、 example.com/germany/** /germany/** がアプリの一般的なリクエスト パターンであると判断し、それを自動 URL パターンとしてプロジェクトに追加します。

    この URL パターンに一致する新しいリクエストがあると、Firebase はリクエストのデータを自動 URL パターンexample.com/germany/**の下に集約します。

  2. 1 週間後、アプリのリクエストの大半はexample.com/germany/animals/bearsexample.com/germany/animals/birdsに対するものになります。そのため、Firebase はより代表的な URL パターンであるexample.com/germany/animals/**を導き出します。

    この新しい URL パターンに一致する新しいリクエストがある場合、Firebase は新しい URL パターンでのみリクエストのデータを集約します。 Firebase は、example.com/germany/** の下にあるexample.com/germany/carsへのリクエストのデータを引き続き集約しexample.com/germany/**

  3. ただし、次の数週間で、アプリからexample.com/germany/animals/bearsexample.com/germany/animals/birdsへのリクエストが大幅に減少します。 Firebase は、 example.com/germany/animals/** /germany/animals/** がアプリの最新の使用状況を表していないと判断したため、Firebase はこれら 2 つのリクエストの照合をexample.com/germany/**に戻して開始します。

    Firebase は、 example.com/germany/animals/** /germany/animals/** が最も代表的な自動 URL パターンではなくなったため、それ以上のリクエスト データを集計しません。

自動 URL パターン マッチングは動的であるため、次の点に注意してください。

  • 以前のリクエストからの一致と集計データは、新しい URL パターンの影響を受けません。 Firebase はリクエスト データをさかのぼって再集計しません。

  • 今後のリクエストのみが新しい URL パターンの影響を受けます。 Firebase は、それぞれの新しいリクエストを最も代表的な自動 URL パターンにマッピングします。ただし、Firebase は最初にリクエスト URL を構成済みのカスタム URL パターンと照合しようとすることに注意してください。

自動 URL パターンとそのデータを表示する

Firebase は、すべての URL パターンとそれらの集計データを、Firebase コンソールのパフォーマンスダッシュボードの下部にあるトレース テーブルの [ネットワーク リクエスト] サブタブに表示します。

Uncategorizedラベルが付いた URL パターンが表示される場合があります。これらは「広範な」自動 URL パターンであり、Firebase は特定の URL パターンに一致しないリクエストのデータを集計できます。

URL パターンで集計されたデータのデータ保持期間が終了すると、Firebase はそのデータを URL パターンから削除します。自動 URL パターンで集計されたすべてのデータが期限切れになると、Firebase はその URL パターンを Firebase コンソールから削除します。

カスタム URL パターン

カスタム URL パターンを作成して、Firebase が派生した自動 URL パターン マッチングでキャプチャしていない特定の URL パターンを監視できます。たとえば、カスタム URL パターンを使用して、特定の URL のトラブルシューティングを行ったり、特定の URL セットを経時的に監視したりできます。

詳細については、カスタム URL パターンの作成をご覧ください。

パフォーマンス データの追跡、表示、フィルタリング

リアルタイムのパフォーマンス データを表示するには、アプリがリアルタイム データ処理と互換性のある Performance Monitoring SDK バージョンを使用していることを確認してください。リアルタイムのパフォーマンス データについて詳しくは、こちらをご覧ください

ダッシュボードで特定の指標を追跡する

主要な指標の傾向を知るには、パフォーマンスダッシュボードの上部にある指標ボードに追加します。週ごとの変更を確認することでリグレッションをすばやく特定したり、コードの最近の変更によってパフォーマンスが向上していることを確認したりできます。

Firebase Performance Monitoring ダッシュボードのメトリクス ボードの画像

メトリクス ボードにメトリクスを追加するには、次の手順に従います。

  1. Firebase コンソールのパフォーマンスダッシュボードに移動します。
  2. 空のメトリック カードをクリックし、既存のメトリックを選択してボードに追加します。
  3. メトリックの置換や削除など、その他のオプションについては、入力済みのメトリック カードでをクリックします。

メトリクス ボードには、収集されたメトリクス データが経時的にグラフ形式と数値の変化率の両方で表示されます。

ダッシュボードの使用について詳しくは、こちらをご覧ください。

トレースとそのデータを表示する

トレースを表示するには、Firebase コンソールのパフォーマンスダッシュボードに移動し、トレース テーブルまで下にスクロールしてから、適切なサブタブをクリックします。テーブルには、各トレースのいくつかの上位メトリックが表示され、特定のメトリックの変化率でリストを並べ替えることもできます.

Performance Monitoring は Firebase コンソールのトラブルシューティング ページを提供し、メトリックの変化を強調表示するため、アプリやユーザーに対するパフォーマンスの問題に迅速に対処し、影響を最小限に抑えることが容易になります。たとえば、次のシナリオで、潜在的なパフォーマンスの問題について学習したときに、トラブルシューティング ページを使用できます。

  • ダッシュボードで関連する指標を選択すると、大きな差があることに気付きます。
  • トレース テーブルで、最大のデルタを一番上に表示するように並べ替えると、大幅な変化率が表示されます。
  • パフォーマンスの問題を通知する電子メール アラートを受け取ります。

トラブルシューティング ページには、次の方法でアクセスできます。

  • メトリック ダッシュボードで、[メトリックの詳細を表示] ボタンをクリックします。
  • 任意の指標カードで、 => 詳細を表示を選択します。トラブルシューティング ページには、選択したメトリックに関する情報が表示されます。
  • トレース テーブルで、トレース名またはそのトレースに関連付けられている行のメトリック値をクリックします。
  • 電子メール アラートで、[今すぐ調査] をクリックします。

トレース テーブルでトレース名をクリックすると、関心のあるメトリックにドリルダウンできます。 [フィルター ] ボタンをクリックして、属性別にデータをフィルター処理します。次に例を示します。

属性でフィルタリングされた Firebase Performance Monitoring データの画像
  • アプリのバージョンでフィルターして、過去のリリースまたは最新のリリースに関するデータを表示します
  • デバイスでフィルタリングして、古いデバイスがアプリをどのように処理するかを確認します
  • でフィルター処理して、データベースの場所が特定の地域に影響していないことを確認します

トレースのデータの表示について詳しくは、こちらをご覧ください

次のステップ

  • 属性を使用してパフォーマンス データを調べる方法について詳しくは、こちらをご覧ください。

  • Firebase コンソールでパフォーマンスの問題を追跡する方法の詳細をご覧ください。

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

  • 同じセッション中に収集された他のトレースのタイムライン コンテキストで特定のトレースを確認できるユーザー セッションの詳細レポートを表示します。