コンソールへ移動

iOS アプリと Android アプリの自動トレース

トレースは、アプリ内の 2 つの時点の間で取得されたパフォーマンス データのレポートです。Performance Monitoring によって、iOS アプリと Android アプリ向けに次のトレースが自動的に実施されます。

  • アプリ起動トレース - ユーザーがアプリを開いてからアプリが応答するまでの時間を測定します。

  • バックグラウンド アプリのトレース - アプリがバックグラウンドで実行されている時間を測定します。

  • フォアグラウンド アプリのトレース - アプリがフォアグラウンドで実行されていてユーザーが利用できる時間を測定します。

  • 画面トレース - 画面の存続期間を通じて低速なフレームとフリーズしたフレームを測定します。

    Firebase コンソールでは、画面トレースが他のトレースとは別のテーブルに表示されるため、アプリのさまざまな画面のパフォーマンスを簡単に調査できます。

自動トレースの定義

Performance Monitoring は、アプリのメソッド呼び出しと通知を使用して各タイプの自動トレースの開始または停止を判断します。

アプリ起動トレース

このトレースでは、ユーザーがアプリを開いてからアプリが応答するまでの時間を測定します。コンソールでは、トレース名は _app_start、報告される指標は期間です。

  • アプリケーションが最初の Object をメモリにロードすると開始します。

  • アプリケーションが UIApplicationDidBecomeActiveNotification 通知を受信した後に発生する、最初の正常な実行ループの後に停止します。

バックグラウンド アプリのトレース

このトレースでは、アプリがバックグラウンドで実行されている時間が測定されます。コンソールでは、トレース名は _app_in_background、報告される指標は期間です。

  • アプリケーションが UIApplicationWillResignActiveNotification 通知を受け取ると開始します。

  • UIApplicationDidBecomeActiveNotification 通知を受け取ると停止します。

フォアグラウンド アプリのトレース

このトレースでは、アプリがフォアグラウンドで実行され、ユーザーが利用できる時間が測定されます。コンソールでは、トレース名は _app_in_foreground、報告される指標は期間です。

  • アプリケーションが UIApplicationDidBecomeActiveNotification 通知を受け取ると開始します。

  • UIApplicationWillResignActiveNotification 通知を受け取ると停止します。

画面トレース

このトレースでは、画面の存続期間を通じて低速なフレームとフリーズしたフレームが測定されます。このトレースで報告される指標は、レンダリングが遅いフレームとフリーズしたフレームです。

Firebase コンソールでは、画面トレースが他のトレースとは別のテーブルに表示されるため、アプリのさまざまな画面のパフォーマンスを簡単に調査できます。

  • アプリが viewDidAppear: を呼び出すと、keyWindow 内のすべての UIViewController について開始されます。

  • アプリが viewDidDisappear: を呼び出すと停止します。

画面トレースでは、正規のコンテナビュー コントローラはキャプチャされません。

コンソールでの自動トレースのモニタリング

  1. Firebase コンソールで [Performance] ダッシュボードに移動します。

  2. [デバイス] タブでは次のような操作ができます。

    • すべてのトレースで収集されたデータのクイック レポートを表示できます。
    • 特定のトレースをクリックして、そのトレースのデータの詳細を確認できます。

    ダッシュボードの左上にある [フィルタ add] ボタンを使用すると、属性を基準にしたデータの基本フィルタも利用できます。

  3. 特定のトレースをクリックすると、収集されたデータの概要がコンソールの指標カードに表示されます。

    • アプリ起動フォアグラウンド アプリバックグラウンド アプリのトレースでは、期間の指標が表示されます。
      ダッシュボードの右上にあるオプションを使用すると、次のような操作ができます。

      • 期間データの中央値を、集約値、または時系列の形式で表示します。
      • アプリのバージョン別に期間の中央値を表示します。
    • 画面トレースの場合は、レンダリングの遅いフレームフリーズしたフレームの指標が表示されます。
      ダッシュボードの右上にあるオプションを使用すると、次のような操作ができます。

      • 指標のしきい値の範囲にある画面の割合を集約して、または時系列の形式で表示します。
      • アプリのバージョン別に、指標のしきい値の範囲にある画面の割合を表示します。

    ダッシュボードの左上にある [フィルタ add] ボタンを使用すると、属性を基準にしたデータの基本フィルタも利用できます。

  4. どの指標についても、[もっと見る] をクリックすると、収集されたデータに関する詳細な情報を確認でき、高度な分析機能を使用できます。たとえば、属性を基準にしたデータのフィルタやセグメント化、アプリの利用状況に関するセッションのコンテキスト内のデータの表示といった操作が可能です。

    次のセクションでは、詳細なトレース レポートで使用できる機能について説明します。

トレース サンプルの詳細を見る

Firebase コンソールで、特定のトレースまたはネットワーク リクエストのセグメントを詳しく知ることができます。記録されたセッションをランダムにサンプリングすると、次の情報が表示されます。

Firebase Performance Monitoring のセッション ページのイメージ

  • CPU: アプリが消費するユーザー時間とシステム時間。

  • メモリ: アプリが使用するヒープメモリの量。ヒープメモリは、作成されたオブジェクト、割り当てが解除されたオブジェクト、アプリケーションが積極的に使用しているオブジェクトなど、動的な割り当てに使用されるメモリです。

  • 個別情報: 開始時間、終了時間、継続時間、リクエスト サイズ、レスポンス サイズなど、トレースまたはネットワーク リクエストの単一インスタンスに関する詳細情報です。

  • 同時インスタンス: 同時に発生したトレースまたはネットワーク リクエストに関する情報です。

  • デバイス属性: アプリのバージョン、モデル、OS のバージョン、無線通信、カスタム属性など、デバイスに関する情報です。

Firebase コンソールでこれらの詳細なサンプルを確認するには、次のいずれかを実行します。

  • アプリのトレースまたはネットワーク要求のいずれかを開き、[セッションを表示] をクリックします。

  • 特定の属性から、属性のセッションのリンクをクリックします。

セッションへのリンクが表示された Firebase Performance Monitoring トレースのイメージ

パーセンタイルによるセッションのフィルタリング

Performance Monitoring が収集するセッションは、各指標のパーセンタイルに分散されます。パーセンタイル範囲が低いセッションは、パーセンタイル範囲が高いセッションよりも指標の値が低くなります。

使用可能なセッションをパーセンタイルでフィルタリングするには、セッションの詳細の上部にあるパーセンタイルのプルダウンを使用します。

Firebase Performance Monitoring のセッション ページのイメージ