Application Real-Time Monitoring Service (ARMS) のアプリケーションモニタリングは、例外分析機能を提供します。この機能は、try-catch
ブロックからエスケープする未捕捉の Java 例外 (発生頻度やコードによってスローされたか、ランタイムエラーによって返されたかに関係なく) を記録し、コードの修正を可能にします。
シナリオ
ARMS は、例外が try-catch
ブロックの外に伝播する場合にのみ例外を記録します。 ARMS エージェントが public void methodA
と public void methodB
をインストラメントしており、互いに呼び出していると仮定します。
シナリオ 1: 両方のメソッドが例外をキャッチします。
public int methodA() { try { return methodB(); } catch (Throwable e) { e.printStackTrace(); return 0; } } public int methodB() { try { return 1 / 0; } catch (Throwable e) { e.printStackTrace(); return 0; } }
結果: 例外は
try-catch
ブロック内でキャッチされて処理されるため、ARMS は例外を記録しません。シナリオ 2: methodA は例外をキャッチしますが、methodB は例外を返します。
public int methodA() { try { return methodB(); } catch (Throwable e) { e.printStackTrace(); return 0; } } public int methodB() { return 1 / 0; }
結果: ARMS は 1 つの
java.lang.ArithmeticException
例外 (methodB
で未捕捉) を記録します。シナリオ 3: 両方のメソッドが例外を返します。
public int methodA() { return methodB(); } public int methodB() { return 1 / 0; }
結果: ARMS は 2 つの
java.lang.ArithmeticException
例外を記録します。シナリオ 4: methodA は methodB の例外をキャッチし、RuntimeException として再スローします。
public static int methodA() { try { return methodB(); } catch (Throwable e) { throw new RuntimeException(e); } } public static int methodB() { return 1 / 0; }
結果: ARMS は 1 つの
java.lang.ArithmeticException
例外 (methodB
で未捕捉) と 1 つのjava.lang.RuntimeException
例外 (methodA
によってスローされた) を記録します。
前提条件
アプリケーションは、アプリケーションモニタリングによって監視されています。
手順
ARMS コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーでリージョンを選択し、アプリケーションをクリックします。
説明言語 列のアイコンは、アプリケーションのプログラミング言語を示します。
: Java
: Go
: Python
- (ハイフン): Managed Service for OpenTelemetry で監視されているアプリケーション
左側のナビゲーションペインで、アプリケーションの詳細をクリックします。
インスタンスを選択し、右上隅で期間を設定して、[例外分析] タブをクリックします。
積み上げチャート
例外 セクションには、指定された期間にアプリケーションで発生した例外の積み上げチャートが表示されます。
ここでは、次のことができます。
チャートの上にポインターを移動して、統計を表示します。
バーを水平方向にドラッグして、指定された期間の統計を表示します。
アイコンをクリックして、選択した期間のメトリック統計を表示するか、異なる日の同じ期間のパフォーマンスを比較します。
アイコンをクリックして、メトリックの API 詳細を表示します。
例外リスト
指定された期間にアプリケーションで発生したすべての例外を表示します。
アクション 列では、次のことができます。
[呼び出し統計] をクリックして、例外の積み上げチャートを表示します。
[インターフェーススナップショット] をクリックして、異常な操作の トレース を表示します。
[詳細] をクリックして、例外の詳細を表示します。
例外をフィルタリングするには、[アプリケーション設定] ページの [カスタム設定] タブの [詳細設定] セクションで ホワイトリスト フィールドを指定します。