Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

特定のアプリコードのカスタムモニタリングを追加する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Performance Monitoring は、アプリのパフォーマンスを監視するのに役立つトレースを収集します。トレースは、アプリ内の 2 つの時点の間でキャプチャされたパフォーマンス データのレポートです。

独自のトレースを作成して、アプリ内の特定のコードに関連付けられたパフォーマンス データを監視できます。カスタム コード トレースを使用すると、一連の画像の読み込みやデータベースへのクエリなど、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。

カスタム コード トレースのデフォルトのメトリックは「期間」(トレースの開始点と停止点の間の時間)ですが、カスタム メトリックを追加することもできます。

コードでは、Performance Monitoring SDK によって提供される API を使用して、カスタム コード トレースの開始と終了を定義します。Android アプリの場合、 @AddTraceアノテーションを使用して特定のメソッドを監視することもできます。カスタム コード トレースは、作成後いつでも開始でき、スレッド セーフです。

これらのトレースで収集されるデフォルトのメトリックは「期間」であるため、「期間トレース」と呼ばれることがあります。

これらのトレースからのデータは、パフォーマンスダッシュボードの下部にあるトレース テーブルの [カスタム トレース] サブタブで表示できます (コンソールの使用については、このページで後述します)。

デフォルト属性、カスタム属性、およびカスタム指標

カスタム コード トレースの場合、Performance Monitoring はデフォルトの属性(アプリのバージョン、国、デバイスなどの一般的なメタデータ)を自動的に記録するため、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 個のメトリックを記録できます (デフォルトのDurationメトリックを含む)。

カスタム メトリックを追加するには、イベントが発生するたびに次のようなコード行を追加します。たとえば、このカスタム メトリクスは、アプリで発生するパフォーマンス関連のイベント (キャッシュ ヒットやキャッシュ ミスなど) をカウントします (例のイベント名item_cache_hititem_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 文字です
    • 名前に使用できる文字は、 AZaz 、および_です。
  • 各カスタム コード トレースは、最大 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 Performance Monitoring ダッシュボードのメトリクス ボードの画像

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

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

メトリクス ボードには、収集されたメトリクス データが経時的にグラフ形式と数値の変化率の両方で表示されます。

ダッシュボードの使用について詳しくは、こちらをご覧ください。

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

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

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

  • ダッシュボードで関連する指標を選択すると、大きな差があることに気付きます。
  • トレース テーブルで、最大のデルタを一番上に表示するように並べ替えると、大幅な変化率が表示されます。
  • パフォーマンスの問題を通知する電子メール アラートを受け取ります。

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

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

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

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

トレースのデータの表示について詳しくは、こちらをご覧ください

次のステップ

  • 属性を使用してパフォーマンス データを調べる方法について詳しくは、こちらをご覧ください。

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

  • アプリのパフォーマンスを低下させるコード変更のアラートを設定します。たとえば、特定のカスタム コード トレースの期間が設定したしきい値を超えた場合に、チームの電子メール アラートを構成できます。

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