• ログイン

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Javaエージェントのエラー設定

APMのJavaエージェントは、アプリケーション内で発生したエラーの詳細情報をレポートします。これにより、アプリケーションのパフォーマンスやエンドユーザーの体験に影響を与えている可能性のある問題領域を把握することができます。

Java エージェント バージョン 3.40.0 以降 では、エラーの報告方法を制御するための設定オプションがいくつかあります。

  • 予想されるエラーがエラーレートやApdexに影響を与えないように設定する
  • エラーの無視
  • 自動的に報告されないエラーを報告する

エラーデータの表示については、 Error analytics を参照してください。すべてのエージェントのエラーデータの概要については、 Manage errors in APM を参照してください。

一般的に報告されているエラー例

次のような場合に、Javaエージェントでエラーが発生することがありました。

エラー報告

コメント

ハンドリングされないエラー(スタックトレースを含む)

Javaエージェントがトレースしていたトランザクション内で処理されないエラーが発生した場合、そのエラーはフルスタックトレースとともに報告されます。

HTTPステータスコード(スタックトレースなし)

トランザクションの結果としてHTTPステータスコードが発生した場合、スタックトレースを伴わずにエラーが報告されます。これは、以下の理由によるものです。

  • アプリケーションサーバーがエラー状態を検出し、ステータスコードを明示的に設定した。

    または

  • エラー状態はプログラム・ロジックによって検出されたため、例外オブジェクトやスタックはありませんでした。

    これらのタイプのトランザクションにスタックトレースを含めるためには、 noticeError(...) APIコールを使用する必要があります。

noticeError(...) APIコール

Javaエージェントが noticeError(...) APIコールを使って明示的に呼び出した場合、エラーがトランザクション内で発生したかどうかに関わらず、エラーが報告されます。報告される情報は、 noticeError(...) APIコールで使用されるパラメータに依存し、その内容は、 Javadocs で説明されています。

100%以上の未処理エラー報告

Javaエージェントは、どのトランザクションにも結びつかないエラーである、スコープ外のエラーを報告することができます。このため、1つのタイムスライスに1つのトランザクションがあり、同じタイムスライスに複数のエラーが発生する可能性があります。このような状況では、New Relic はエラー率 が 100% を超えて表示されます。.

エラーレポートの設定

重要

この機能を使用するには、 を最新のリリース にアップグレードしてください。 (Java agent 3.40.0 以上)。

Javaエージェントには、エラーの報告方法を制御するための柔軟な設定オプションがいくつか用意されています。

設定オプション

詳細

UIによるエラーの設定

サーバーサイドコンフィグ によって、エラーを無視したり、期待通りのマークを付けたりすることができます。

Configure as expected errors via newrelic.yml.

これらのバージョンで報告されるエラー noticeError は、 expected errors in the newrelic.yml として設定することができます。 newrelic.ymlignored としてエラーが設定されている場合、このAPIへの呼び出しは上書きされます。詳しくは、 Error configuration precedence をご覧ください。

これらの noticeError() API コールを使用して、自動的に報告されないエラーを報告し、 expected errors として newrelic.yml に設定します。

  • noticeError(String message)

Override expected errors via newrelic.yml.

これらのバージョンで報告されるエラー noticeError は、 newrelic.yml expected error の設定を上書きします。yml でエラーが ignored として設定されている場合、この API の呼び出しは上書きされます。詳細は、 Error configuration precedence を参照してください。

これらの noticeError(...) API コールを使用して、自動的に報告されないエラーを報告し、それらを 期待されるエラー として API で設定します(yml の期待されるエラー設定をオーバーライドします)。

設定ファイルによるエラーを無視するか期待するか。

バージョン3.40.0以降では、 YAMLベースの設定 を使用して、エラーの報告方法を制御することができます。これにより、エラーを無視するか、HTTPステータスコードに基づくエラーを期待するか または、例外クラス名のリストとオプションのエラーメッセージに基づく が可能です。

  • Ignoring errors 指定された例外クラスまたはコードがAPMにまったく報告されないようにします。

  • Expecting errors 指定された例外クラスやコードが、アプリケーションの エラーレートApdex score に影響を与えることを防ぎます。これにより、トラブルシューティングのためにエラー情報を保持しつつ、エラーレートやApdexスコアに基づくアラートを回避することができます。

    これらの設定は動的なものなので、実行中のエージェントは、JVMを再起動しなくても newrelic.yml の変更に気づくことができます。詳細と例については、 Javaエージェント設定ファイル を参照してください。

エラー収集のためのYAMLベースの設定

YAMLベースのエラーコレクションの設定では、特定のエラーを完全に無視したり、予想されるエラーを除外して、アプリケーションのエラーレートやApadexスコアに影響を与えないようにすることができます。以下の基準に基づいて、エラーを無視または予期されるものとしてマークすることができます。

  • HTTPステータスコードの指定された範囲を、カンマで区切られたリストまたは破線の範囲として表示します。
  • パッケージ/クラスの完全修飾名を使用したコンマ区切りのリスト および 任意で提供されるエラーメッセージ文字列

エラー設定の優先順位

エラー設定の優先順位は

  1. サーバー側の設定 (YAMLファイルに値を重ねる)
  2. ignore_* YAMLのconfig
  3. expected parameter in noticeError(...) API call
  4. expected_* YAMLでの設定

ここでは、さまざまなAPIコールとYAMLの設定を組み合わせた場合の結果の例を紹介します。

エラーの詳細についてログを調べる

ログやアプリケーションのデータをまとめて、トラブルシューティングを簡単かつ迅速に行うことができます。 logs in context では、エラーやトレースに関連するログメッセージをアプリのUIで直接確認することができます。

  1. Errors ページから、トレースをクリックして Error details ページ に移動します。
  2. エラー詳細ページで、See logsをクリックします。
  3. 各ログメッセージに関連する詳細を表示するには、メッセージを直接クリックしてください。

無視されるエラーと期待されるエラーをUIで設定

APM UIを介して、 予想されるエラー を設定すること。

  1. 有効になっていない場合は、サーバーサイドコンフィグレーションを有効化します。
  2. 期待通りとマークしたいエラーのあるアプリケーションのサーバー側の設定メニュー にアクセスします。
  3. エラーコレクション の下で、 Ignore または Exclude expected errors のいずれかに、設定したいエラーの HTTP コードまたはエラークラスを入力します。
  4. Select Save.

予想されるエラーをUIで表示する方法については、 予想されるエラーを表示する を参照してください。

Copyright © 2023 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.