2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ申し込む

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

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

すべてのアプリタイプについて、パフォーマンスモニタリングは、 HTTP / Sネットワークリクエストトレースと呼ばれる、アプリによって発行された各ネットワークリクエストのトレースを自動的に収集します。これらのトレースは、アプリがサービスエンドポイントにリクエストを発行してから、そのエンドポイントからの応答が完了するまでの時間のメトリックを収集します。アプリがリクエストを行うエンドポイントについて、パフォーマンスモニタリングはいくつかの指標をキャプチャします。

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

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

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

  • 成功率—合計応答と比較した成功​​応答(100〜399の範囲の応答コード)のパーセンテージ

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

プレースホルダー46

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

ネットワーク要求用のすぐに使用可能なツールとデータ集約に加えて、パフォーマンスモニタリングは次のオプションもサポートします。

  • ネットワークリクエストトレースを手動で計測する:すぐに使用できるモニタリングには、アプリのほとんどのネットワークリクエストが含まれます。ただし、一部のリクエストが報告されない場合や、別のライブラリを使用してネットワークリクエストを行う場合があります。このような場合、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/** /*/animals/**)。

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

    • プレーンテキスト—完全に一致する文字列
    • * —単一のパスセグメント内の任意の文字列に一致します
    • ** —任意のパスサフィックスに一致します
  • 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をそれらのパターンに一致させようとします。 Firebaseが一致するカスタムURLパターンを見つけられない場合、リクエストURLを最も代表的な自動URLパターンに一致させます。次のセクションで、自動およびカスタムURLパターンの詳細を確認してください。

自動URLパターン

設定を行わなくても、パフォーマンスモニタリングは、アプリのリクエストを自動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はexample.com/germany/animals/**のより代表的なURLパターンを導き出します。

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

  3. ただし、今後数週間で、example.com / example.com/germany/animals/birds example.com/germany/animals/bearsのアプリのリクエストは大幅に減少します。 Firebaseは、 example.com/germany/animals/** /ドイツ/animals/**がアプリの最新の使用動作を表していないと判断したため、Firebaseはこれら2つのリクエストのマッチングを開始してexample.com/germany/**に戻します。

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

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

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

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

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

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

未分類のラベルが付いたURLパターンが表示される場合があります。これらは「幅広い」自動URLパターンであり、Firebaseは、より具体的なURLパターンと一致しないリクエストのデータを集約できます。

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

カスタムURLパターン

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

詳細については、 「カスタムURLパターンの作成」にアクセスしてください。

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

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

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

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

FirebasePerformanceMonitoringダッシュボードの指標ボードの画像

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

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

メトリックボードには、収集されたメトリックデータが、グラフ形式と数値のパーセンテージ変化の両方で表示されます。

ダッシュボードの使用の詳細をご覧ください。

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

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

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

  • ダッシュボードで関連するメトリックを選択すると、大きなデルタに気づきます。
  • トレーステーブルで、最大のデルタを上部に表示するように並べ替えると、大幅なパーセンテージの変化が見られます。
  • パフォーマンスの問題を通知する電子メールアラートを受け取ります。

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

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

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

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

トレースのデータの表示の詳細をご覧ください

次のステップ

  • 属性を使用してパフォーマンスデータを調べる方法の詳細をご覧ください。

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

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

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