Performance Monitoring は、アプリのパフォーマンスを監視するのに役立つトレースを収集します。トレースは、アプリ内の 2 つの時点の間でキャプチャされたパフォーマンス データのレポートです。
独自のトレースを作成して、アプリ内の特定のコードに関連付けられたパフォーマンス データを監視できます。カスタム コード トレースを使用すると、一連の画像の読み込みやデータベースへのクエリなど、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。
カスタム コード トレースのデフォルトのメトリックは「期間」(トレースの開始点と停止点の間の時間)ですが、カスタム メトリックを追加することもできます。
コードでは、Performance Monitoring SDK によって提供される API を使用して、カスタム コード トレースの開始と終了を定義します。カスタム コード トレースは、作成後いつでも開始でき、スレッド セーフです。
これらのトレースで収集されるデフォルトのメトリックは「期間」であるため、「期間トレース」と呼ばれることがあります。
これらのトレースからのデータは、パフォーマンスダッシュボードの下部にあるトレース テーブルの [カスタム トレース] サブタブで表示できます (コンソールの使用については、このページで後述します)。
デフォルト属性、カスタム属性、およびカスタム指標
カスタム コード トレースの場合、Performance Monitoring はデフォルトの属性(アプリのバージョン、国、デバイスなどの一般的なメタデータ)を自動的に記録するため、Firebase コンソールでトレースのデータをフィルタリングできます。カスタム属性(ゲーム レベルやユーザー プロパティなど) を追加して監視することもできます。カスタム コード トレースをさらに構成して、トレースのスコープ内で発生するパフォーマンス関連イベントのカスタム メトリックを記録できます。たとえば、キャッシュのヒット数とミス数、または UI が一定期間応答しなくなった回数のカスタム メトリックを作成できます。
カスタム属性とカスタム指標は、トレースのデフォルト属性とデフォルト指標とともに Firebase コンソールに表示されます。
カスタム コード トレースを追加する
Performance Monitoring Trace API ( Swift | Obj-C ) を使用してカスタム コード トレースを追加し、特定のアプリケーション コードを監視します。
次の点に注意してください。
- アプリには、複数のカスタム コード トレースを含めることができます。
- 複数のカスタム コード トレースを同時に実行できます。
- カスタム コード トレースの名前は、次の要件を満たす必要があります: 先頭または末尾に空白がないこと、先頭にアンダースコア (
_
) 文字がないこと、および最大長が 100 文字であること。 - カスタム コード トレースは、カスタム メトリックとカスタム属性の追加をサポートします。
カスタム コード トレースを開始および停止するには、トレースするコードを次のようなコード行でラップします。
迅速
// Add the Performance Monitoring module to your header import FirebasePerformance let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") // code that you want to trace trace.stop()
Objective-C
// Add the Performance Monitoring module to your header @import FirebasePerformance; FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; // code that you want to trace [trace stop];
カスタム メトリックをカスタム コード トレースに追加する
Performance Monitoring Trace API ( Swift | Obj-C ) を使用して、カスタム メトリックをカスタム コード トレースに追加します。
次の点に注意してください。
- カスタム メトリックの名前は、先頭または末尾に空白がないこと、先頭にアンダースコア (
_
) 文字がないこと、および最大長が 100 文字であるという要件を満たす必要があります。 - 各カスタム コード トレースは、最大 32 個のメトリックを記録できます (デフォルトのDurationメトリックを含む)。
カスタム メトリックを追加するには、イベントが発生するたびに次のようなコード行を追加します。たとえば、このカスタム メトリックは、キャッシュ ヒットや再試行など、アプリで発生するパフォーマンス関連のイベントをカウントします。
迅速
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") trace.incrementMetric(named:"EVENT_NAME", by: 1) // code that you want to trace (and log custom metrics) trace.stop()
Objective-C
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; [trace incrementMetric:@"EVENT_NAME" byInt:1]; // code that you want to trace (and log custom metrics) [trace stop];
カスタム コード トレースのカスタム属性を作成する
Performance Monitoring Trace API ( Swift | Obj-C ) を使用して、カスタム属性をカスタム コード トレースに追加します。
カスタム属性を使用するには、属性を定義し、それを特定のカスタム コード トレースに関連付けるコードをアプリに追加します。カスタム属性は、トレースの開始から停止までの間いつでも設定できます。
次の点に注意してください。
カスタム属性の名前は、次の要件を満たす必要があります。
- 先頭または末尾の空白、先頭のアンダースコア (
_
) 文字なし - 場所がない
- 最大長は 32 文字です
- 名前に使用できる文字は、
AZ
、az
、および_
です。
- 先頭または末尾の空白、先頭のアンダースコア (
各カスタム コード トレースは、最大 5 つのカスタム属性を記録できます。
カスタム属性には、Google が個人を特定できる情報が含まれていないことを確認してください。
このガイドラインの詳細
迅速
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") trace.setValue("A", forAttribute: "experiment") // Update scenario. trace.setValue("B", forAttribute: "experiment") // Reading scenario. let experimentValue:String? = trace.valueForAttribute("experiment") // Delete scenario. trace.removeAttribute("experiment") // Read attributes. let attributes:[String, String] = trace.attributes;
Objective-C
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; [trace setValue:@"A" forAttribute:@"experiment"]; // Update scenario. [trace setValue:@"B" forAttribute:@"experiment"]; // Reading scenario. NSString *experimentValue = [trace valueForAttribute:@"experiment"]; // Delete scenario. [trace removeAttribute:@"experiment"]; // Read attributes. NSDictionary <NSString *, NSString *> *attributes = [trace attributes];
パフォーマンス データの追跡、表示、フィルタリング
ダッシュボードで特定の指標を追跡する
主要な指標の傾向を知るには、パフォーマンスダッシュボードの上部にある指標ボードに追加します。週ごとの変更を確認することでリグレッションをすばやく特定したり、コードの最近の変更によってパフォーマンスが向上していることを確認したりできます。

メトリクス ボードにメトリクスを追加するには、次の手順に従います。
- Firebase コンソールのパフォーマンスダッシュボードに移動します。
- 空のメトリック カードをクリックし、既存のメトリックを選択してボードに追加します。
- メトリックの置換や削除など、その他のオプションについては、入力済みのメトリック カードで をクリックします。
メトリクス ボードには、収集されたメトリクス データが経時的にグラフ形式と数値の変化率の両方で表示されます。
ダッシュボードの使用について詳しくは、こちらをご覧ください。
トレースとそのデータを表示する
トレースを表示するには、Firebase コンソールのパフォーマンスダッシュボードに移動し、トレース テーブルまで下にスクロールしてから、適切なサブタブをクリックします。テーブルには、各トレースのいくつかの上位メトリックが表示され、特定のメトリックの変化率でリストを並べ替えることもできます.
Performance Monitoring は Firebase コンソールのトラブルシューティング ページを提供し、メトリックの変化を強調表示するため、アプリやユーザーに対するパフォーマンスの問題に迅速に対処し、影響を最小限に抑えることが容易になります。たとえば、次のシナリオで、潜在的なパフォーマンスの問題について学習したときに、トラブルシューティング ページを使用できます。
- ダッシュボードで関連する指標を選択すると、大きな差があることに気付きます。
- トレース テーブルで、最大のデルタを一番上に表示するように並べ替えると、大幅な変化率が表示されます。
- パフォーマンスの問題を通知する電子メール アラートを受け取ります。
トラブルシューティング ページには、次の方法でアクセスできます。
- メトリック ダッシュボードで、[メトリックの詳細を表示] ボタンをクリックします。
- 任意の指標カードで、 => 詳細を表示を選択します。トラブルシューティング ページには、選択したメトリックに関する情報が表示されます。
- トレース テーブルで、トレース名またはそのトレースに関連付けられている行のメトリック値をクリックします。
- 電子メール アラートで、[今すぐ調査] をクリックします。
トレース テーブルでトレース名をクリックすると、関心のあるメトリックにドリルダウンできます。 [フィルター
] ボタンをクリックして、属性別にデータをフィルター処理します。次に例を示します。
- アプリのバージョンでフィルターして、過去のリリースまたは最新のリリースに関するデータを表示します
- デバイスでフィルタリングして、古いデバイスがアプリをどのように処理するかを確認します
- 国でフィルター処理して、データベースの場所が特定の地域に影響していないことを確認します
トレースのデータの表示について詳しくは、こちらをご覧ください。
次のステップ
属性を使用してパフォーマンス データを調べる方法について詳しくは、こちらをご覧ください。
Firebase コンソールでパフォーマンスの問題を追跡する方法の詳細をご覧ください。
アプリのパフォーマンスを低下させるコード変更のアラートを設定します。たとえば、特定のカスタム コード トレースの期間が設定したしきい値を超えた場合に、チームの電子メール アラートを構成できます。
- 同じセッション中に収集された他のトレースのタイムライン コンテキストで特定のトレースを確認できるユーザー セッションの詳細レポートを表示します。