Performance Monitoringは、アプリのパフォーマンスを監視するのに役立つトレースを収集します。トレースは、アプリの2つの時点の間でキャプチャされたパフォーマンスデータのレポートです。
独自のトレースを作成して、アプリ内の特定のコードに関連付けられたパフォーマンスデータを監視できます。カスタムコードトレースを使用すると、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。たとえば、一連の画像の読み込みやデータベースのクエリなどです。
カスタムコードトレースのデフォルトのメトリックはその「期間」(トレースの開始点と停止点の間の時間)ですが、カスタムメトリックを追加することもできます。
コードでは、Performance Monitoring SDKによって提供されるAPIを使用して、カスタムコードトレースの開始と終了を定義します。Androidアプリの場合、 @AddTrace
アノテーションを使用して特定のメソッドを監視することもできます。カスタムコードトレースは、作成後いつでも開始でき、スレッドセーフです。
これらのトレースに対して収集されるデフォルトのメトリックは「期間」であるため、「期間トレース」と呼ばれることもあります。
これらのトレースのデータは、パフォーマンスダッシュボードの下部にあるトレーステーブルの[カスタムトレース]サブタブで表示できます(コンソールの使用について詳しくは、このページの後半を参照してください)。
デフォルト属性、カスタム属性、およびカスタムメトリック
カスタムコードトレースの場合、パフォーマンスモニタリングはデフォルトの属性(アプリのバージョン、国、デバイスなどの一般的なメタデータ)を自動的にログに記録するため、Firebaseコンソールでトレースのデータをフィルタリングできます。カスタム属性(ゲームレベルやユーザープロパティなど)を追加および監視することもできます。さらに、カスタムコードトレースを構成して、トレースのスコープ内で発生するパフォーマンス関連のイベントのカスタムメトリックを記録できます。たとえば、キャッシュのヒットとミスの数、またはUIが目立った期間応答しなくなった回数のカスタムメトリックを作成できます。
カスタム属性とカスタム指標は、トレースのデフォルト属性とデフォルト指標とともにFirebaseコンソールに表示されます。
カスタムコードトレースを追加する
Performance Monitoring Trace APIを使用して、特定のアプリケーションコードを監視するためのカスタムコードトレースを追加します。
次の点に注意してください。
- アプリは複数のカスタムコードトレースを持つことができます。
- 複数のカスタムコードトレースを同時に実行できます。
- カスタムコードトレースの名前は、次の要件を満たしている必要があります。先頭または末尾の空白、先頭の下線(
_
)文字、最大長は100文字です。 - カスタムコードトレースは、カスタムメトリックとカスタム属性の追加をサポートします。
カスタムコードトレースを開始および停止するには、トレースするコードを次のようなコード行でラップします(この例では、 test_trace
というカスタムトレース名を使用します)。
Java
// Import these Performance Monitoring classes at the top of your `.java` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.Trace; Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start(); // code that you want to trace myTrace.stop();
Kotlin+KTX
// Import these Performance Monitoring classes at the top of your `.kt` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.Trace; val myTrace = Firebase.performance.newTrace("test_trace") myTrace.start() // code that you want to trace myTrace.stop()
(オプション) @AddTraceを使用して特定のメソッドを監視します
Androidアプリは、カスタムコードトレースを計測するための@AddTrace
アノテーションもサポートしています。この機能を使用すると、トレースは指定されたメソッドの先頭から開始し、メソッドによって呼び出されたものを含め、メソッドが完了すると停止します。
たとえば、 onCreate()
メソッドが呼び出されたときに実行されるonCreateTrace
というカスタムコードトレースを作成できます。
Java
// Import these Performance Monitoring classes at the top of your `.java` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.AddTrace; // Add the `@AddTrace` annotation above the method you want to trace @Override @AddTrace(name = "onCreateTrace", enabled = true /* optional */) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
Kotlin+KTX
// Import these Performance Monitoring classes at the top of your `.kt` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.AddTrace; // Add the `@AddTrace` annotation above the method you want to trace @AddTrace(name = "onCreateTrace", enabled = true /* optional */) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) }
カスタムコードトレースにカスタムメトリックを追加する
Performance Monitoring Trace APIを使用して、カスタムメトリックをカスタムコードトレースに追加します。
次の点に注意してください。
- カスタムメトリックの名前は、次の要件を満たしている必要があります。先頭または末尾の空白、先頭の下線(
_
)文字、最大長は100文字です。 - 各カスタムコードトレースは、最大32のメトリック(デフォルトの期間メトリックを含む)を記録できます。
カスタムメトリックを追加するには、イベントが発生するたびに、次のようなコード行を追加します。たとえば、このカスタムメトリックは、キャッシュのヒットやミスなど、アプリで発生するパフォーマンス関連のイベントをカウントします( item_cache_hit
とitem_cache_miss
のイベント名の例と1
の増分を使用)。
Java
Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start(); // code that you want to trace (and log custom metrics) Item item = cache.fetch("item"); if (item != null) { myTrace.incrementMetric("item_cache_hit", 1); } else { myTrace.incrementMetric("item_cache_miss", 1); } myTrace.stop();
Kotlin+KTX
val myTrace = Firebase.performance.newTrace("test_trace") myTrace.start() // code that you want to trace (and log custom metrics) val item = cache.fetch("item") if (item != null) { myTrace.incrementMetric("item_cache_hit", 1) } else { myTrace.incrementMetric("item_cache_miss", 1) } myTrace.stop()
カスタムコードトレースのカスタム属性を作成する
Performance Monitoring Trace APIを使用して、カスタム属性をカスタムコードトレースに追加します。カスタム属性を使用するには、属性を定義し、それを特定のカスタムコードトレースに関連付けるコードをアプリに追加します。カスタム属性は、トレースの開始時から停止時までの間にいつでも設定できます。
次の点に注意してください。
カスタム属性の名前は、次の要件を満たしている必要があります。先頭または末尾の空白、先頭の下線(
_
)文字、最大長は32文字です。各カスタムコードトレースは、最大5つのカスタム属性を記録できます。
Googleに対して個人を個人的に識別する情報を含むカスタム属性を使用しないでください。
このガイドラインの詳細
Java
Trace trace = FirebasePerformance.getInstance().newTrace("test_trace"); // Update scenario. trace.putAttribute("experiment", "A"); // Reading scenario. String experimentValue = trace.getAttribute("experiment"); // Delete scenario. trace.removeAttribute("experiment"); // Read attributes. Map<String, String> traceAttributes = trace.getAttributes();
Kotlin+KTX
Firebase.performance.newTrace("test_trace").trace { // Update scenario. putAttribute("experiment", "A") // Reading scenario. val experimentValue = getAttribute("experiment") // Delete scenario. removeAttribute("experiment") // Read attributes. val traceAttributes = this.attributes }
パフォーマンスデータの追跡、表示、およびフィルタリング
ダッシュボードで特定のメトリックを追跡する
主要な指標がどのようにトレンドになっているのかを知るには、パフォーマンスダッシュボードの上部にある指標ボードにそれらを追加します。週ごとの変更を確認するか、コードの最近の変更によってパフォーマンスが向上していることを確認することで、リグレッションをすばやく特定できます。

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