Performance Monitoringは、アプリのパフォーマンスを監視するのに役立つトレースを収集します。トレースは、アプリの2つの時点の間にキャプチャされたパフォーマンスデータのレポートです。
独自のトレースを作成して、アプリ内の特定のコードに関連付けられたパフォーマンスデータを監視できます。カスタムコードトレースを使用すると、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。たとえば、一連の画像の読み込みやデータベースのクエリなどです。
カスタムコードトレースのデフォルトのメトリックはその「期間」(トレースの開始点と停止点の間の時間)ですが、カスタムメトリックを追加することもできます。
コードでは、Performance Monitoring SDKによって提供されるAPIを使用して、カスタムコードトレースの開始と終了を定義します。 カスタムコードトレースは、作成後に開始することもでき、スレッドセーフです。
Firebaseコンソールの[デバイス上]タブでカスタムコードトレースのデータを表示します(詳細については、このページで後述します)。これらのトレースに対して収集されるデフォルトのメトリックは「期間」であるため、「期間トレース」と呼ばれることもあることに注意してください。また、Firebaseコンソール([デバイス上]タブ)では、これらのトレースは[期間]というラベルの付いたテーブルの下にグループ化されています。
デフォルトの属性、カスタム属性、およびカスタムメトリック
カスタムコードトレースの場合、パフォーマンスモニタリングはデフォルトの属性(国、ブラウザ、ページURLなどの一般的なメタデータ)を自動的にログに記録するため、Firebaseコンソールでトレースのデータをフィルタリングできます。カスタム属性(ゲームレベルやユーザープロパティなど)を追加および監視することもできます。さらに、カスタムコードトレースを構成して、トレースのスコープ内で発生するパフォーマンス関連のイベントのカスタムメトリックを記録できます。たとえば、キャッシュのヒットとミスの数、またはUIが目立った期間応答しなくなった回数のカスタムメトリックを作成できます。
カスタム属性とカスタム指標は、トレースのデフォルト属性とデフォルト指標と一緒にFirebaseコンソールに表示されます。
カスタムコードトレースを追加する
Performance Monitoring Trace APIを使用して、特定のアプリケーションコードを監視するためのカスタムコードトレースを追加します。
次の点に注意してください。
- アプリには、複数のカスタムコードトレースを含めることができます。
- 複数のカスタムコードトレースを同時に実行できます。
- カスタムコードトレースの名前は、次の要件を満たしている必要があります。先頭または末尾の空白、先頭の下線(
_
)文字、最大長は100文字です。 - カスタムコードトレースは、カスタムメトリックとカスタム属性の追加をサポートします。
カスタムコードトレースを開始および停止するには、トレースするコードを次のようなコード行でラップします。
const trace = perf.trace("CUSTOM_TRACE_NAME"); trace.start(); // Code that you want to trace // ... trace.stop();
User TimingAPIを使用してカスタムコードトレースを追加する
Performance Monitoring Trace APIに加えて、ブラウザのネイティブUser TimingAPIを使用してカスタムコードトレースを追加できます。このAPIを使用して測定されたトレースの継続時間は、Performance MonitoringSDKによって自動的に取得されます。 User Timing APIの使用は、Performance MonitoringSDKを非同期でロードする場合に特に役立ちます。 SDKが初期化されると、SDKはロード前に発生した測定値を記録します。
この機能を使用するには、トレースするコードをユーザータイミングマークでラップします。
const performance = window.performance; performance.mark("measurementStart"); // Code that you want to trace // ... performance.mark("measurementStop"); performance.measure("customTraceName", "measurementStart", "measurementStop");
上記の例のperformance
は、ブラウザのwindow.performance
オブジェクトを参照していることに注意してください。
User Timing APIを使用する場合、カスタムメトリックと属性をカスタムコードトレースに追加することはできません。これらのカスタム要素をカスタムコードトレースに追加する場合は、 Performance Monitoring TraceAPIを使用します。
カスタムコードトレースにカスタムメトリックを追加する
Performance Monitoring Trace APIを使用して、カスタムメトリックをカスタムコードトレースに追加します。
次の点に注意してください。
- カスタムメトリックの名前は、次の要件を満たしている必要があります。先頭または末尾の空白、先頭の下線(
_
)文字、最大長は100文字です。 - 各カスタムコードトレースは、最大32のメトリック(デフォルトのDurationメトリックを含む)を記録できます。
カスタムメトリックを追加するには、イベントが発生するたびに、次のようなコード行を追加します。たとえば、このカスタムメトリックは、アプリで発生するパフォーマンス関連のイベントをカウントします。
async function getInventory(inventoryIds) { const trace = perf.trace("inventoryRetrieval"); // Tracks the number of IDs fetched (the metric could help you to optimize in the future) trace.incrementMetric("numberOfIds", inventoryIds.length); // Measures the time it takes to request inventory based on the amount of inventory trace.start(); const inventoryData = await retrieveInventory(inventoryIds); trace.stop(); return inventoryData; }
カスタムコードトレースのカスタム属性を作成する
Performance Monitoring Trace APIを使用して、カスタム属性をカスタムコードトレースに追加します。
カスタム属性を使用するには、属性を定義し、それを特定のカスタムコードトレースに関連付けるコードをアプリに追加します。カスタム属性は、トレースの開始時から停止時までの間にいつでも設定できます。
次の点に注意してください。
カスタム属性の名前は、次の要件を満たしている必要があります。先頭または末尾の空白、先頭の下線(
_
)文字、最大長は32文字です。各カスタムコードトレースは、最大5つのカスタム属性を記録できます。
Googleに対して個人を個人的に識別する情報を含むカスタム属性を使用しないでください。
このガイドラインの詳細
const trace = perf.trace("test_trace"); trace.putAttribute("experiment", "A"); // Update scenario trace.putAttribute("experiment", "B"); // Reading scenario const experimentValue = trace.getAttribute("experiment"); // Delete scenario trace.removeAttribute("experiment"); // Read attributes const traceAttributes = trace.getAttributes();
パフォーマンスデータの追跡、表示、およびフィルタリング
ダッシュボードで特定のメトリックを追跡する
主要な指標をダッシュボードに追加して、それらの傾向を確認します。週ごとの変更を確認するか、コードの最近の変更によってパフォーマンスが向上していることを確認することで、リグレッションをすばやく特定できます。

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