問題
状況によっては、アプリケーションのスタック トレースを含まないエラー トレースが APM UI に表示される場合があります。
解決
状況に応じて、以下のトラブルシューティングの手順に従ってください。
パフォーマンス上の理由から、エラー レポートの上限は次のとおりです。
- エージェント・インスタンスごとに毎分100イベント
- エージェント・インスタンスごとに毎分20件のトレース詳細
当社の APM エージェントは、未処理の例外のエラーを自動的に報告します。アプリケーション ロジックがエラーを処理する状況では、APM エージェントがエラーを見逃す可能性があり、スタック トレースを報告しません。
notice_error()
エージェント固有の API を使用して、処理された例外を記録できます。
エラーを 無視するように構成した場合、スタック トレースは利用できません。
500
エラーを返すということは、アプリケーション サーバー自体がエラーを検出し、HTTPS 500
ステータス コードを設定したことを意味します。
エラー状態がアプリケーション・ロジックで検出され処理された場合、例外オブジェクトは存在せず、したがってスタックもありません。
ある時点で例外オブジェクトがあったが、応答で500
ステータスを設定したアプリケーション コードによって内部的に処理された場合、例外はエージェントに表示されませんでした。エージェントが報告できるスタックがありません。
スタック トレースが報告される場合、アプリケーション サーバー ロジック内で捕捉および処理されなかった例外が原因でエラーが発生します。エージェントは、監視対象のトランザクション中に未処理の例外を確認するため、スタック トレースを報告します。
欠落しているスタック トレースに対するエージェント固有の動作
Java エージェント
急激に繰り返されるエラーが発生した場合、Javaコンパイラはパフォーマンスを向上させるためにスタックトレースを最適化することがあります。この最適化を無効にするにはJVMフラグの中に
-XX:-OmitStackTraceInFastThrow