コンソールへ移動

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

カスタム トレースを作成して、アプリ内の特定のコードに関連付けられたパフォーマンス データをモニタリングできます。カスタム トレースを使用すると、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。たとえば、一連の画像の読み込みやデータベースのクエリなどです。カスタム トレースのデフォルトの指標は期間ですが、カスタム指標も追加できます。

コードでは、Performance Monitoring SDK に用意された API を使用して、カスタム トレースの開始と終了を定義します。

トレースは作成後に開始することも可能で、スレッドセーフです。

次の点にご注意ください。

  • アプリには複数のカスタム トレースを作成できます。
  • 複数のカスタム トレースを同時に実行できます。
  • カスタム トレースとカスタム指標の名前には制限があります。先頭または末尾が空白文字でなく、先頭がアンダースコア(_)でない 32 文字以下の名前にする必要があります。

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

カスタム トレースでは、Firebase コンソールでデータをフィルタリングできるように、どのタイプのトレースについても収集されるデフォルト属性(アプリのバージョン、国、デバイス、ブラウザなど該当するメタデータ)が自動的にログに記録されます。カスタム トレースではさらに、カスタム属性(ゲームレベルやユーザー プロパティなど)も追加してモニタリングできます。

カスタム トレースは、トレースの範囲内で発生したパフォーマンス関連イベントのカスタム指標を記録するように構成することもできます。たとえば、キャッシュのヒット数とミス数や、UI が一定の期間反応しなかった回数のカスタム指標を作成できます。これらのカスタム指標のデータは、トレースのデフォルト指標とともに Firebase コンソールに表示されます。

カスタム トレースとカスタム指標を追加する

  1. Performance Monitoring モジュールをヘッダーに追加します。

    Swift

    import FirebasePerformance
    

    Objective-C

    @import FirebasePerformance;
    
  2. カスタム トレースを開始して停止するには、トレースするコードを次のようなコード行で囲みます。

    Swift

    let trace = Performance.startTrace(name: "customTraceName")
    
    // code that you want to trace
    
    trace.stop()
    

    詳しくは、カスタム トレース用 API をご覧ください。

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"customTraceName"];
    
    // code that you want to trace
    
    [trace stop];
    

    詳しくは、カスタム トレース用 API をご覧ください。

  3. カスタム指標を追加するには、次のようなコード行を追加し、イベントが発生するたびに実行されるようにします。たとえば、このカスタム指標は、キャッシュのヒットや再試行など、アプリで発生したパフォーマンス関連のイベントをカウントします。

    Swift

    let trace = Performance.startTrace(name: "customTraceName")
    
    trace.incrementMetric(named:"eventName", by: 1)
    // code that you want to trace (and log custom metrics)
    
    trace.stop()
    

    Objective-C

    FIRTrace *trace = [FIRPerformance startTraceWithName:@"customTraceName"];
    
    [trace incrementMetric:@"eventName" by:1];
    // code that you want to trace (and log custom metrics)
    
    [trace stop];
    

コンソールでカスタム トレースとカスタム指標をモニタリングする

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

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

    • すべてのトレースで収集されたデータのクイック レポートを表示できます。

    • 特定のトレースをクリックして、そのトレースのデータの詳細を確認できます。

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

  3. 個別のトレースをクリックすると、収集されたデータの概要がコンソールの指標カードに表示されます。これには、デフォルトの [期間] の指標と、カスタム トレース用に構成した他のすべてのカスタム指標が含まれます。

    • ダッシュボードの右上にあるオプションを使用して、期間データを集計値または時系列の形式や、アプリのバージョン別の形式で表示できます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

次のステップ