HTTP/S ネットワーク リクエストをモニタリングする

HTTP/S ネットワーク リクエスト トレースは、アプリがサービス エンドポイントにリクエストを発行してから、そのエンドポイントからのレスポンスが完了するまでの時間をキャプチャするレポートです。アプリがリクエストを発行する任意の宛先エンドポイントについて、Performance Monitoring は次のような指標を取得します。

  • 応答時間: リクエストが発行されてからレスポンスが完全に受信されるまでの時間

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

  • 成功率: 全レスポンス数に対する成功レスポンス数の割合(ネットワーク障害やサーバー障害を測定することを目的とします)

URL パターンに基づくデータの集計

Firebase Performance Monitoring は類似したネットワーク リクエストのデータを自動的に集計します。これにより、ネットワーク リクエスト パフォーマンスの傾向を把握できます。

Firebase は、リクエストごとにネットワーク リクエストの URL が URL パターンと一致しているかどうかを確認します。リクエスト URL が URL パターンと一致した場合、Firebase はリクエストのデータを URL パターンで自動的に集計します。Firebase コンソールで [Performance] セクションの [ネットワーク] タブに移動すると、この URL パターンと集計データを確認できます。

URL パターンとは

URL パターンは、example.com/*/animals/** のようにドメインと URL パスの照合パターンから構成されます。

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

    • 書式なしテキスト - 完全な文字列に一致します。
    • * - 単一のパスセグメント内の任意の文字列に一致します。
    • ** - 任意のパス接尾辞に一致します。
  • URL パターンは次のいずれかになります。

例: 次の URL リクエストはいずれも URL パターン example.com/*/animals/** に一致します。

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

Firebase は、各リクエストを 1 つの URL パターンにのみマッピングします。カスタム URL パターンが構成されている場合、Firebase はまずカスタム パターンとリクエスト URL のマッチングを行います。一致するカスタム URL パターンが見つからない場合、Firebase は最も代表的な自動 URL パターンとリクエスト URL をマッチングします。カスタム URL パターンの詳細については、以降のセクションをご覧ください。

自動 URL パターン

Performance Monitoring は、構成していなくても、アプリのリクエストと 自動 URL パターンをマッチングし、アプリの最新の利用行動を反映します。

自動 URL パターン マッチングの仕組み

Firebase は、アプリが送信したリクエストから生成した最も代表的な自動 URL パターンと各リクエストをマッチングします。ただし、カスタム URL パターンが構成されている場合、Firebase はカスタム パターンとリクエスト URL のマッチングを先に行います。

以下に、Firebase がアプリの最も代表的な自動 URL パターンとリクエストをマッチングする場合の基本的な流れを示します。

  1. アプリが次の URL に多くのリクエストを送信したとします。

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

    Firebase は、example.com/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 パターンで集計します。example.com/germany/cars へのリクエストは引き続き example.com/germany/** で集計されます。

  3. さらに、数週間後にアプリから example.com/germany/animals/bearsexample.com/germany/animals/birds へのリクエストが減少したとします。Firebase は、example.com/germany/animals/** がアプリの最新の利用行動を表していないと判断し、この 2 つのリクエストと example.com/germany/** のマッチングを開始します。

    example.com/germany/animals/** は最も代表的な自動 URL パターンでなくなったため、今後のリクエストはこのパターンで集計されません。

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

  • 以前のリクエストに対する一致と集計データは、新しい URL パターンの影響を受けません。Firebase が過去に遡ってリクエスト データを再集計することはありません。

  • 新しい URL パターンの影響を受けるのは、これから発生するリクエストだけです。Firebase は、最も代表的な自動 URL パターンと新しいリクエストをマッピングします。ただし、Firebase は構成済みのカスタム URL パターンとリクエスト URL のマッチングを先に行います。

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

コンソールの [Performance] セクションで、[ネットワーク] > [すべて] タブを開くと、自動 URL パターンの一覧が表示されます。URL のパターンに未分類というラベルが表示されることがあります。リクエストが限定的な URL パターンと一致しない場合、Firebase はこの自動 URL パターンでリクエストのデータを集計します。

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

カスタム URL パターン

カスタム URL パターンを作成すると、Firebase の自動 URL パターン マッチングで取得されない特定の URL パターンをモニタリングできます。たとえば、カスタム URL パターンを使用することで、特定の URL のトラブルシューティングを行うことができます。また、URL の特定のセットを継続的にモニタリングできます。

カスタム URL パターン マッチングの仕組み

Firebase は、自動 URL パターン マッチングを行う前に構成済みのカスタム URL パターンとリクエスト URL をマッチングします。カスタム パターンに一致する URL にリクエストが送信されると、Firebase は、リクエストのデータをカスタム URL パターンで集計します。

リクエストの URL が複数のカスタム URL パターンと一致する場合、Firebase は最も限定的なカスタム URL パターンとのみリクエストをマッピングします。限定の順序は、パスの左から右に書式なしテキスト > * > ** です。たとえば、example.com/books/dog に対するリクエストは、次の 2 つのカスタム URL パターンに一致します。

  • example.com/books/*
  • example.com/*/dog

ここで、example.com/books/* の左端のセグメント booksexample.com/*/dog の左端のセグメント * よりも優先されるため、パターン example.com/books/*最も限定的な URL マッチング パターンになります。

新しいカスタム URL パターンを作成する場合は、次の点に注意してください。

  • 新しいカスタム URL パターンを作成しても、以前のリクエストの一致と集計データには影響を与えません。Firebase が過去に遡ってリクエスト データを再集計することはありません。

  • 新しいカスタム URL パターンの作成で影響を受けるのは、これから発生するリクエストのみです。Performance Monitoring がデータを収集して新しいカスタム URL パターンで集計するまでに最大で 12 時間ほどかかることがあります。

カスタム URL パターンを作成する

コンソールで [Performance] セクションの [ネットワーク] タブを開き、カスタム URL パターンを作成します。新しいカスタム URL パターンを作成するには、プロジェクトのメンバーにオーナーまたは編集者のロールが付与されている必要があります。プロジェクトのどのメンバーも、カスタム URL パターンとその集計データを表示できます。

アプリ 1 個あたり合計 400 個までのカスタム URL パターンを作成でき、各アプリのドメイン 1 個あたり 100 個までのカスタム URL パターンを作成できます。

カスタム URL パターンを作成するには、次のパスセグメント構文を使用して URL パスと一致するパターンを作成し、ドメインの後に続けます。

  • 書式なしテキスト - 完全な文字列に一致します。
  • * - 単一のパスセグメント内の任意の文字列に一致します。
  • ** - 任意のパス接尾辞に一致します。

次の表に、カスタム URL パターンのマッチングの候補を示します。

マッチング対象... 作成するカスタム URL パターン... この URL パターンのマッチング例
正確な URL example.com/foo/baz example.com/foo/baz
任意の単一パスセグメント(* example.com/*/baz example.com/foo/baz
example.com/bar/baz
example.com/*/*/baz example.com/foo/bar/baz
example.com/bah/qux/baz
example.com/foo/* example.com/foo/baz
example.com/foo/bar

注: このパターンは example.com/foo と一致しません。

任意のパス接尾辞(** example.com/foo/** example.com/foo
example.com/foo/baz
example.com/foo/baz/more/segments
subdomain.example.com/foo.bar/** subdomain.example.com/foo.bar
subdomain.example.com/foo.bar/baz
subdomain.example.com/foo.bar/baz/more/segments

カスタム URL パターンとそのデータを表示する

集計データが存在するカスタム URL パターンは、コンソールの [Performance] セクションの [ネットワーク] > [すべて] タブと [ネットワーク] > [カスタム] タブの両方に表示されます。集計データが存在しないカスタム URL パターンは、[ネットワーク] > [カスタム] タブにのみ表示されます。

URL パターンで集計したデータの保持期間が過ぎると、Firebase は URL パターンからデータを削除します。カスタム URL パターンで集計したすべてのデータが期限切れになっても、Firebase は Firebase コンソールからカスタム URL パターンを削除しません。代わりに、Firebase は空のカスタム URL パターンの一覧を [ネットワーク] > [カスタム] タブに表示します。

カスタム URL パターンを削除する

自動 URL パターンとは異なり、カスタム URL パターンはプロジェクトから削除できます。

  1. コンソールの [Performance] セクションで、[ネットワーク] > [カスタム] タブの順に移動します。

  2. 削除するカスタム URL パターンの行にカーソルを合わせます。

  3. 行の右端にある をクリックして、ダイアログで削除を確定します。

カスタム URL パターンを削除する場合は、次の点に注意してください。

  • 今後のリクエストは、次に限定的なカスタム URL パターンにマッピングされます。一致するカスタム URL パターンが見つからない場合、Firebase は自動 URL パターンを使用します。

  • 以前のリクエストの一致とデータは、カスタム URL パターンを削除しても影響を受けません。

    該当するデータ保存期間内であれば、[ネットワーク] > [すべて] タブを開くと、削除したカスタム URL パターンとその集計データにアクセスできます。削除されたカスタム URL パターンで集計されたデータがすべて期限切れになると、カスタム URL パターンは削除されます。

  • [ネットワーク] > [カスタム] タブの順に移動しても、削除されたカスタム URL パターンは表示されません。

コンソールでネットワーク リクエスト トレースをモニタリングする

  1. Firebase コンソールで [Performance] ダッシュボードに移動します。

  2. [ネットワーク] タブでは、次のような操作ができます。

    • すべてのネットワーク リクエストで収集されたデータのクイック レポートを表示できます。

    • 個別のエンドポイントをクリックすると、そのエンドポイントのデータの詳細を確認できます。

    • ダッシュボードの左上にある [フィルタ ] ボタンを使用して、属性を基準にしたデータの基本フィルタを実行できます。

  3. 個別のエンドポイントをクリックすると、収集されたデータの概要がコンソールの指標カードに表示されます。

    • ダッシュボードの右上にあるオプションを使用すると、次のような操作ができます。

      • データを集計値または時系列の形式や、アプリのバージョン別の形式で表示できます。
      • エンドポイントの成功率を集計値または時系列の形式や、アプリのバージョン別の形式で表示できます。
    • ダッシュボードの左上にある [フィルタ ] ボタンを使用して、属性を基準にしたデータの基本フィルタを実行できます。

  4. どの指標についても、[もっと見る] をクリックすると、収集されたデータに関する詳細な情報を確認でき、高度な分析機能を使用できます。たとえば、属性を基準にしたデータのフィルタやセグメント化、アプリの利用状況に関するセッションのコンテキスト内のデータの表示といった操作が可能です。

次のステップ