処理された例外の監視機能は、モバイル アプリケーションのエクスペリエンスを低下させる重要な要因を特定し、フィルター可能なデータを使用して解決策をより迅速に見つけるのに役立ちます。また、 Handled Exceptions API を使用して送信するデータをカスタマイズし、NRQL を使用してデータのクエリと共有を行うこともできます。
one.newrelic.com > All capabilities > Mobile > (select an app) > Exceptions > Handled exceptions: グラフや表の豊富なデータを調べる際には、グループとフィルターを使用して、モバイル アプリの例外の根本原因を特定するのに役立つパターンを見つけます。
特徴
発生した例外を処理すると、モバイル アプリのユーザー エクスペリエンスが向上しますが、例外をキャッチするだけでは不十分です。それらを防ぐ方法も知っておく必要があります。処理された例外機能は、次のような質問に答えるのに役立ちます。
- 処理された例外の種類はいくつ発生していますか?発生率が高い場合は、バックエンド システムに変更を加える必要があることを示している可能性があります。
- なぜユーザーのアプリ使用でトライ/キャッチが発生するのか?例外が発生する背景は何ですか?
- 処理された例外に対するテスト環境の反応は、どのような場合に、より深刻な問題を示唆するのでしょうか?
- 実稼働環境で例外がキャッチされなかった場合、クラッシュの原因は何でしたか?他に (コードまたはバックエンド API で) まだユーザー エクスペリエンスに影響を与えているものはありますか?
処理された例外を使用することで、この種の問題をより迅速に特定し、解決することができます。
要件
処理された例外データを表示するには、アプリが次の要件を満たしている必要があります。
例外的なパーセントチャート
まず、 Users affectedとSessions affectedパーセンテージ チャートから始めて、予期しない急上昇、急降下、または例外的なパターンが全般的にないか確認します。 Users affectedグラフが空の場合は、選択した期間中にユーザー セッションがなかったことを意味します。
これを使用して、次のような質問に答えます。
- 最近のバージョンリリースの近くにスパイクはありますか?
- ユーザーの割合が例外的に大きく影響を受けた時期はありますか?
- 何事もない時期はありますか?
データをさらに詳しく調べるには、任意のグラフの下でExpand chartを選択します。
グループとフィルター
グループとフィルターを使用して、クラッシュ、デバイス、場所、またはその他のカスタム属性の属性をより詳細に調べます。グループを選択してから、特定のデータにフィルターをかけることができます。これを使用して、次のようなことを行います。
例外の場所(デフォルト)、原因、アプリのビルドまたはバージョン、デバイス、接続、またはその他のカスタム属性によってリストをグループ化できます。これにより、例外のパターンを発見し、根本的な原因を特定することができます。
タイム ピッカーを 使用して、現在選択されている期間を調整します。
特定の
Version
または 1 つ以上の属性
Filter
(
appVersion
、exceptionLocationMethod
、lastInteraction
など)、あるいは標準およびカスタムアトリビュートの長いリストのいずれかでフィルタリングします。
現在選択されているフィルターは、UIページの上部に表示されます。これらを閉じたり、他のフィルターを追加したり、他のグループやフィルターを選択することができます。
トップ例外のロケーション
Top exception locationsテーブルを使用して、グループとフィルターから選択した例外のタイプのパターンを検索または並べ替えます。 これも:
- スタックトレースの繰り返しの位置
- モバイルアプリ版
- 発生回数
- 選択した期間中に影響を受けたユーザーの数
たとえば、 Exception Message
でグループ化し、 timeout
メッセージにフィルターをかけ、テーブルから個々のタイムアウトの場所を選択して、スタック トレース スレッドと各発生の詳細を確認できます。
- その他の属性でフィルタリングやグループ化を行うには、テーブルの検索ウィンドウを使用するか、利用可能なフィルタを選択します。例えば、オカレンスのタイプ、デバイス、特定の場所、または任意のカスタム属性でフィルタリングします。
- 他の履歴パターンを探すには、選択した期間を変更します。
クエリビルダーのリンク
Handled exceptions チャートは、モバイル イベント ( MobileHandledException
を含む) のデフォルトの属性と、このイベント タイプに追加したカスタム アトリビュートを使用します。 グラフの上にマウスを置くと、グラフの下に直接リンクが表示されます。 クエリビルダーへのこれらのリンクを使用すると、モバイル アプリのデータをさらに詳細に分析できます。
エクセプション・ロケーション・テーブル
Exception locations表はグラフを補足します。 スタックトレース スレッド内で処理された例外の上位 5 つがどこに表示されるかをリストし、関連する詳細へのリンクを示します。 各行は、次のような質問に対する答えを見つけるのに役立ちます。
- この例外は、選択した の期間内に何件発生したのか?
- 特定のアプリバージョンでは、影響を受けるユーザーの数が多い(または少ない)のですか?
- 発生回数が最も少ない例外はどれですか?
並べ替え順序やフィルター オプションを変更して、自分やチームにとって最も重要な例外の種類だけに焦点を当てることができます。 例外の発生ごとに追加のスレッド詳細を表示するには、 Top exceptions locationテーブルからレコードを選択します。
処理例外発生内容
処理された例外の発生ごとに詳細を表示するには、次のようにします。
one.newrelic.com > All capabilities > Mobile > (select an app) > Exceptions > Handled exceptions
に移動します。
Top exception locations
テーブルから、任意の行で処理された例外を選択します。
Occurrencesページには、デバイス タイプまたは OS ごとの内訳データ、影響を受けるユーザーの数、選択した期間の合計発生回数、属性など、選択した例外に関する詳細が表示されます。
one.newrelic.com > All capabilities > Mobile > (select an app) > Exceptions > Handled exceptions > (select an exception) > Occurrences: スレッドの詳細を使用して、スタックトレース内の処理された例外のパターンをさらに調べます。
If you want to... | Do this |
---|---|
一般的なパターンを見つける | Occurrencesページから:
|
より具体的なパターンを探す | 以下のいずれかを行ってください。
|
属性からパターンを見つける | 以下を含む、オカレンスに関連する
|
オカレンスデータのクエリやビジュアライズ | New Relic を使用して、 データを照会する または ダッシュボードを作成する を表示または共有することができます。 |
オカレンスのイベント トレイル
Event trailチャートでは、処理された例外に至るまでのタイムスタンプ付きイベントを確認できます。
one.newrelic.com > All capabilities > Mobile > (select an app) > Exceptions > Handled exceptions > (click an exception) > (scroll down to Event trail chart): 処理された例外に至るまでのイベントのイベント履歴を表示します。
記号化されていないスタックトレス
New Relic は、処理された例外のシンボル化されていないスタックトレースを保存しません。これは、 クラッシュイベントトレイル とは異なります。新しい処理された例外がシンボル化されるようになるので、必要に応じて後から dSYM をアップロードすることができます。
処理された例外 API
Handled exceptions機能には、クエリ ビルダーで処理された例外データを調べて特定の詳細を取得するために使用できるデフォルトのプロパティが自動的に含まれます。
イベント タイプを
MobileHandledException
クエリします 。詳細については、のNRQL の例を参照してください。
カスタムアトリビュートとイベントの作成
カスタムアトリビュートやカスタムイベントもできます。 作成したら、 Handled exceptionsページで属性を選択してクエリを実行します。