Performance Monitoringは、トレースを使用して、アプリ内の監視対象プロセスに関するデータを収集します。トレースは、アプリの2つの時点の間にキャプチャされたデータを含むレポートです。
すべてのアプリタイプについて、パフォーマンスモニタリングは、 HTTP / Sネットワークリクエストトレースと呼ばれる、アプリによって発行された各ネットワークリクエストのトレースを自動的に収集します。これらのトレースは、アプリがサービスエンドポイントにリクエストを発行してから、そのエンドポイントからの応答が完了するまでの時間の指標を収集します。アプリがリクエストを行うエンドポイントについて、パフォーマンスモニタリングはいくつかの指標をキャプチャします。
応答時間—要求が行われてから応答が完全に受信されるまでの時間
応答ペイロードサイズ—アプリによってダウンロードされたネットワークペイロードのバイトサイズ
リクエストペイロードサイズ—アプリによってアップロードされたネットワークペイロードのバイトサイズ
成功率—合計応答と比較した成功応答のパーセンテージ(ネットワークまたはサーバーの障害を測定するため)
このすぐに使用できる監視には、アプリに対するほとんどのネットワークリクエストが含まれます。ただし、一部のリクエストが報告されない場合や、別のライブラリを使用してネットワークリクエストを行う場合があります。このような場合、Performance Monitoring APIを使用して、カスタムネットワークリクエストトレースを手動で計測できます。
URLパターンでのデータ集約
Firebase Performance Monitoringは、同様のネットワークリクエストのデータを自動的に集計して、ネットワークリクエストのパフォーマンスの傾向を理解するのに役立ちます。
Firebaseは、リクエストごとに、ネットワークリクエストのURLがURLパターンと一致するかどうかを確認します。リクエストURLがURLパターンと一致する場合、FirebaseはリクエストのデータをURLパターンに自動的に集約します。 Firebaseは、Firebaseコンソールのパフォーマンスダッシュボードの[ネットワーク]タブにURLパターンとその集計データを表示します。
URLパターンとは何ですか?
URLパターンには、ドメインとURLパスに一致するパターンが含まれています(例: example.com/*/animals/**
/ example.com/*/animals/**
/ example.com/*/animals/**
/ example.com/*/animals/**
。
URLパターンには、次のパスセグメントを含めることができます。
- プレーンテキスト—完全に一致する文字列
*
—単一のパスセグメント内の任意の文字列に一致します**
—任意のパスサフィックスに一致します
URLパターンは次のいずれかになります。
- Firebaseから派生したパターン—自動URLパターンと呼ばれます
- ユーザー定義パターン—カスタムURLパターンと呼ばれます
例:次のURLリクエストはいずれも、URLパターンexample.com/*/animals/**
一致する可能性があり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をそれらのパターンに一致させようとします。 Firebaseが一致するカスタムURLパターンを見つけられない場合、リクエストURLを最も代表的な自動URLパターンに一致させます。次のセクションで、自動およびカスタムURLパターンの詳細を確認してください。
自動URLパターン
設定を行わなくても、パフォーマンスモニタリングは、アプリのリクエストを自動URLパターンに一致させることで、アプリの最新の使用状況を反映しようとします。
自動URLパターンマッチングはどのように機能しますか?
Firebaseは、各リクエストを、アプリから送信されたリクエストから派生した最も代表的な自動URLパターンと照合します。ただし、Firebaseは最初にリクエストURLを設定済みのカスタムURLパターンと照合しようとすることに注意してください。
以下は、Firebaseがリクエストをアプリの最も代表的な自動URLパターンに一致させようとする方法の基本的な例です。
アプリは次のような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/**
集約しexample.com/germany/**
。-
1週間後、アプリのリクエストの大部分は
example.com/germany/animals/bears
とexample.com/germany/animals/birds
にexample.com/germany/animals/bears
れexample.com/germany/animals/birds
。そのため、Firebaseはexample.com/germany/animals/**
より代表的なURLパターンを導き出しexample.com/germany/animals/**
。この新しいURLパターンに新たなマッチング要求の場合、Firebaseは、新しいURLパターンの下で要求のデータを集計します。 Firebaseは、
example.com/germany/cars
下にあるexample.com/germany/**
へのリクエストのデータを引き続き集計しexample.com/germany/**
。ただし、今後数週間で、
example.com/germany/animals/bears
/example.com/germany/animals/birds
example.com/germany/animals/bears
/example.com/germany/animals/birds
およびexample.com/germany/animals/birds
へのアプリのリクエストは大幅に減少しexample.com/germany/animals/bears
。 Firebaseは、example.com/germany/animals/**
ドイツ/ animals / **がアプリの最新の使用動作を表していないと判断したため、Firebaseはこれら2つのリクエストのマッチングを開始してexample.com/germany/**
戻しexample.com/germany/**
。Firebaseは、最も代表的な自動URLパターンではなくなったため、
example.com/germany/animals/**
ドイツ/ animals / **の下にそれ以上のリクエストデータを集約しません。
自動URLパターンマッチングは動的であるため、次の点に注意してください。
以前のリクエストからの一致と集計データは、新しいURLパターンの影響を受けません。 Firebaseは、リクエストデータをさかのぼって再集計しません。
新しいURLパターンの影響を受けるのは、将来のリクエストのみです。 Firebaseは、新しいリクエストをそれぞれ最も代表的な自動URLパターンにマッピングします。ただし、Firebaseは最初にリクエストURLを設定済みのカスタムURLパターンと照合しようとすることに注意してください。
自動URLパターンとそのデータを表示する
コンソールのパフォーマンスダッシュボードでは、[ネットワーク]> [すべて]タブに自動URLパターンが一覧表示されます。未分類のラベルが付いたURLパターンが表示される場合があります。これらは「幅広い」自動URLパターンであり、Firebaseは、より具体的なURLパターンと一致しないリクエストのデータを集約できます。
URLパターンで集計されたデータのデータ保持期間が終了すると、FirebaseはそのデータをURLパターンから削除します。自動URLパターンで集計されたすべてのデータの有効期限が切れると、FirebaseはそのURLパターンをFirebaseコンソールから削除します。
カスタムURLパターン
カスタムURLパターンを作成して、Firebaseがキャプチャしていない特定のURLパターンを、派生した自動URLパターンマッチングで監視できます。たとえば、カスタムURLパターンを使用して、特定のURLのトラブルシューティングを行ったり、特定のURLセットを長期間監視したりできます。
詳細については、「カスタムURLパターンの作成」にアクセスしてください。
パフォーマンスデータの追跡、表示、およびフィルタリング
ダッシュボードで特定のメトリックを追跡する
ダッシュボードに主要な指標を追加して、それらの傾向を確認します。週ごとの変更を確認するか、コードの最近の変更によってパフォーマンスが向上していることを確認することで、リグレッションをすばやく特定できます。

ダッシュボードに指標を追加するには、Firebaseコンソールの[パフォーマンス]ダッシュボードに移動し、[ダッシュボード]タブをクリックします。空のメトリックカードをクリックしてから、ダッシュボードに追加する既存のメトリックを選択します。メトリックの置換や削除などのオプションについては、入力されたメトリックカードの をクリックしてください。
ダッシュボードには、収集されたメトリックデータが、グラフ形式と数値のパーセンテージ変化の両方で表示されます。
ダッシュボードの使用の詳細をご覧ください。
すべてのトレースとそのデータを表示する
これらのトレースを表示するには、Firebaseコンソールのパフォーマンスダッシュボードに移動し、[ネットワーク]タブをクリックします。
[ネットワーク]タブから、さまざまな画面をクリックしてトレースを探索し、関心のあるメトリックにドリルダウンできます。ほとんどのページでは、[
のフィルター]ボタン(画面の左上)を使用して、属性でデータをフィルター処理できます。次に例を示します。
- アプリのバージョンでフィルタリングして、過去のリリースまたは最新のリリースに関するデータを表示します
- デバイスでフィルタリングして、古いデバイスがアプリをどのように処理するかを確認します
- 国でフィルタリングして、データベースの場所が特定の地域に影響を与えていないことを確認します
トレースのデータの表示の詳細をご覧ください。
次のステップ
Firebaseコンソールでパフォーマンスの問題を追跡する方法の詳細をご覧ください。
- 同じセッション中に収集された他のトレースのタイムラインコンテキストで特定のトレースを確認できるユーザーセッションの詳細レポートを表示します。