New Relic モバイルモニタリングには、モバイルアプリがレポートするデータをカスタマイズして拡張する方法がいくつかあります。このような実装を"カスタムインスツルメンテーションと呼んでいます。" このドキュメントでは、New Relic に追加のデータを取得する方法と、その新しいデータを UI で表示する方法について説明しています。
カスタムデータタイプの選択
これらのオプションを使って、モバイルアプリのカスタム計測用に独自のデータタイプを作成することができます。これらの4つのオプションを使用すると、アプリのニーズに基づいて幅広いデータを取得することができます。
カスタムデータオプション | 説明 |
---|---|
キーと値のペアで構成される独自の属性を作成することで、セッションデータを追跡するためのカスタムデータを追加することができます。 | |
クラッシュの原因のトラブルシューティングに役立つカスタムパンくずイベントは、どのパンくずAPIコールに到達したかを確認し、その時点でのアプリのステータス詳細をレポートすることで、ユーザーのコードレベルでのアプリ内のパスを追跡します。 | |
カスタムインタラクションは、メソッドのタイミングをデバッグしたり、ネットワークコールの効率を向上させたりするためのトレース機能を提供します。インタラクションの一般的な使い方は、特定のアプリ画面のロードに関連する基本的なアクティビティを理解することです。 | |
カスタムイベントを利用して、ユーザーがアプリ内を移動する際のユーザーアクティビティに関するデータを収集することができます。このユーザーアクティビティは、パンくずの収集、自動計測されたHTTPリクエストとエラー、自動計測されたインタラクション、カスタムインタラクションなど、他のデータ収集のきっかけとなります。 |
セッションレベルのカスタム属性の追加
カスタム属性は、モバイルモニタリングデータにアノテーション(または"タグ" )を行います。カスタム属性は、キーと値のペアで構成されます。例えば、キー userEmail
に alice@bigcorp.test
や bob@example.com
のような値を作成することができます。エージェントは、カスタム属性を デフォルトのモバイルモニタリングデータ 、およびお客様が作成したパンくずやカスタムイベントに自動的に付加します。
カスタム属性を使用して、お客様のビジネスに関連する使用状況データを取得することができます。一般的な例としては、アカウント名やID、ユーザーのEメール、サブスクリプションレベルなどがあります。そして、 クラッシュ分析ページ や NRQL クエリでフィルタリングやファセットを行うことができます。
カスタム属性を設定すると、セッションレベルでキーと値のペアの情報が追加されます。すべての デフォルトのモバイルモニタリングイベント は、これらのセッションレベルのカスタム属性を継承します。
ベストプラクティスとして、カスタムアトリビュートを使用して、セッション全体で真となる可能性のあるキーに対する単一の値を追跡するようにしてください(たとえば、ユーザーのサブスクリプションレベルや、ログインにSAMLが使用されたかどうかなど)。
接続タイプの変更など、セッション中の値の変化を追跡するには、代わりに breadcrumb とそのカスタム属性を記録します。セッション中に発生した一連の個別のユーザーアクションを追跡するには、 カスタムイベント を使用します。
カスタムアトリビュートを追加するには、以下を参照してください。
- Android: Use
setAttribute()
andincrementAttribute()
. - iOS:
setAttribute()
およびincrementAttribute()
を使用します。
パン粉の記録
パンくずは、アプリの実行中にアプリの状態を追跡し、アプリがクラッシュしたときにその状態のスナップショットを報告します。これにより、モバイルアプリのクラッシュをより簡単にデバッグすることができます。
カスタムインタラクション は、セッションレベルで作成されたカスタム属性のみを継承します。パンくずは、それらの同じセッションレベルのカスタム属性を継承しますが、オプションとして、各 recordBreadcrumb()
APIコールに固有の追加のカスタム属性を報告することもできます。
パン粉はいくつかの方法で使用できます。
- アプリがHTTPレスポンスを受信したときにパンくずイベントを記録し、さらにそのレスポンスの値をカスタム属性として記録することができます(例えば、レスポンスはアプリに次にどの画面を表示するかを伝えたり、セッション中の各変更に対して一意のタイムスタンプを記録したりすることができます)。アプリがクラッシュしたり、エラーが発生した場合、HTTPレスポンスから無効なデータを確認することができます。
- ユーザーのログインプロセスの各ステップの成功を、
status
属性が、各ステップのsuccess
またはfailure
キーを記録するなどして追跡することができます。これにより、どのステップで問題が発生しているかをデバッグすることができます。
MobileBreadcrumb
カスタムイベントを作成するアプリのバージョンをリリースすると、クラッシュしたセッションの一部としてアプリのコードパスに表示されるたびに、 クラッシュイベントトレイル でそれらを見ることができます。また、 NRQL を使用して、すべてのブレッドクラムまたはクラッシュしたセッションのブレッドクラムのみを照会することができます。これにより、その特定のブレッドクラムを含むアプリのパスの頻度を確認できます。
カスタムブレッドクラムを追加するには、参照してください。
- Android: 使用
recordBreadcrumb()
. - iOS: Use
recordBreadcrumb()
.
カスタムインタラクションの作成
モバイル監視エージェントは、画面の読み込みや部分的な画面の読み込み(Androidの場合はフラグメント、iOSの場合はビューコントローラなど)を検出すると、インタラクションのインスツルメンテーションを開始します。New Relic は、低速なインタラクションを自動的にトレースし、呼び出されたメソッド、ネットワークリクエスト、インタラクション開始時の CPU やメモリの使用状況など、低速なインタラクションの全体像を詳細に把握することができます。
私たちのモバイルモニタリングは、データの豊富なトレースを自動的に選択します。エージェントが探す具体的な基準は、計測されたメソッドがインタラクション全体の時間の少なくとも30%を占めているインタラクションです。
自動計測に加えて、カスタムインタラクションを開始することで、アプリコードのそのポイントから始まり、後続のメソッドやネットワークコールにわたって、エージェントにトレースの記録を開始させることができます。カスタムインタラクションのトレースは、深い情報を提供します。しかし、インタラクションの全期間にわたって大量のデータを収集するため、他のカスタムデータ収集方法と比較して、エージェントのオーバーヘッドが増加します。
カスタムインタラクションは、クラッシュに関連付けられると、 クラッシュイベントトレイルに表示されます。 。また、 NRQL でそれらを照会し、柔軟な分析を行うことができます。
インタラクションはトレースには強力ですが、他のカスタムデータタイプに比べて他の点で柔軟性に欠けます。 カスタムブレッドクラムやカスタムイベントでは、カスタム属性 を特定のイベントに合わせて最適化することができますが、インタラクションはセッションレベルの属性しか継承できません。
カスタムインタラクショントレースを追加するには、以下を参照してください。
- Android:
startInteraction()
andendInteraction() を使用します。
- iOS: インタラクションの作成と完成.
また、インタラクション・トレーシングをグローバルに設定することもできます。
- Android:
withInteractionTracing()
で完全に無効にするか、withDefaultInteractions()
で自動計測されたトレースのみを無効にします。 - iOS:
NRFeatureFlag_InteractionTracing()
で完全に無効にするか、NRFeatureFlag_DefaultInteractions()
で自動計測されたトレースのみを無効にします。
カスタムイベントの記録
カスタムイベントは、任意のユーザーアクティビティを New Relic に報告するための強力なツールです。クラッシュに関連付けられると、カスタムイベントは クラッシュイベントトレイル に表示されます。また、 NRQL で照会して、柔軟な分析を行うことができます。カスタムインタラクションとは異なり、カスタムイベントでは、ユーザーセッション内の特定のイベントにカスタム属性を追加することができます。
例えば、ユーザーがボタンをタップしたり、特定の機能にアクセスしたりするたびにカスタムイベントを記録し、NRQLを使ってその機能がどれだけ使われたかを追跡することができます。単純なカウントだけでなく、 FACET
モバイルアプリのデフォルト属性 (ロケーション、デバイス、キャリアなど)を利用して、利用状況を分析することができます。セッションレベルのカスタム属性を追加すると、ユーザーのサブスクリプションレベルやその他のユーザー特性など、重要な基準に基づいて利用状況をさらに詳しく調べることができます。そのカスタムイベントにさらに属性を追加すると、ユーザーの行動をより詳細に追跡することができます。例えば、どのようなデータを入力したのか、どのようなオプションを選択したのかなどです。
カスタムイベントを追加するには、以下を参照してください。
- Android: 使用
recordCustomEvent()
. - iOS: Use
recordCustomEvent()
.