• ログイン

Javaエージェント設定:設定ファイル

New Relic Javaエージェントは、newrelic.ymlファイルから設定を読み取ります。デフォルトで、エージェントは、newrelic.jarを含むディレクトリでこのファイルを検索します。newrelic.config.fileシステムプロパティを完全修飾ファイル名に設定して、設定ファイルの場所を上書きできます。

New Relicアカウントを作成(永久無料)し、Javaエージェントをインストールした後、環境に合わせてJavaエージェントを設定することができます。

設定ファイルの構成

newrelic.ymlファイルは、次の異なる環境に対応するスタンザに分割されます。

  • テスト
  • 開発
  • ステージング
  • 本番環境(デフォルト)

New Relicは、共通するスタンザの設定を、これらの各環境に適用します。newrelic.environmentシステムプロパティを環境名に設定して、デフォルトとしてその他の環境を選択できます。

ヒント

newrelic.ymlテンプレートが利用可能です。

newrelic.ymlを編集する場合、YAML形式に従うよう注意してください。New RelicのJavaエージェントで使用する前に、YAMLバリデータを使用して構文が正しいことを確認し、以下の規則に従ってください。

Javaエージェント newrelic.yml

要件

形式

YMLファイルには、大文字と小文字の区別があります。

インデント

すべてのインデントは、2文字の空白にする必要があります。その他のインデントにすると、エージェントの起動時にUnable to parse configuration fileエラーが生じます。

  • ファイルの同じスタンザのデータは、同じレベルのインデントを使用します。
  • サブスタンザは、2つの空白を追加してインデントします。

ファイルの変更

変更を有効にするには、JVMホストプロセスを再起動する必要があります。

例外:プロパティをlog_levelおよびaudit_modeに変更しても、再起動は不要です。ブレーカーの下でのプロパティの変更では、再起動が必要です。

設定の優先順位

設定ファイルで設定を上書きするには、システムプロパティの上書きを使用します。環境によっては、環境変数を使用して、設定ファイルとシステムプロパティの両方を上書きすることもできます。環境変数は主に、Herokuをサポートするために存在します。使用すると、サーバーサイドコンフィグレーションが、その他すべての設定を上書きします。

Javaエージェントでは、サーバーサイドコンフィグレーションが、その他すべての設定を上書きします。環境変数は、Javaシステムプロパティを上書きします。Javaプロパティは、お使いのnewrelic.ymlファイルのユーザー設定を上書きします。ユーザー設定は、newrelic.ymlデフォルト設定を上書きします。

Javaエクステンションディレクトリの設定

Javaエージェントは、プロセスの開始時に設定ファイルを読み込みます。ファイルのあるディレクトリを特定するには、新規のディレクトリを作成するか、既存のエクステンションディレクトリを指定します。

一般構成設定

commonスタンザでこのオプションを設定します。このオプションを上書きするには、newrelic.configプリフィックス化システムプロパティを使用します。

重要

Javaエージェント3.48.0では、SSLはデフォルトで有効になっており、これを無効にする設定オプションは非推奨となっています。Javaエージェント4.0.0では、SSLを無効にする機能は削除されています。

環境変数

環境変数は最優先となり、システムプロパティとyml設定を上書きします。

  • 環境変数を設定するには、export VARNAME=valueコマンドを使用します。
  • 環境変数を恒久的に設定するには、~/.bashrc~/.bash_profileのようにエクスポート行をファイルに追加します。

システムプロパティから、または環境変数を設定してnewrelic.ymlで、設定を上書きできます。設定ファイルで所定の設定に対応する環境変数は、すべてのドット (.) とダッシュ (-) をアンダースコア (_) で置換したNEW_RELICでプリフィックス化した設定名です。たとえば、log_level設定の環境変数はNEW_RELIC_LOG_LEVELです。

スタンザにネストされた設定については、スタンザ名を設定名に追加します。たとえば、transaction_tracerスタンザのenabled設定の環境変数はNEW_RELIC_TRANSACTION_TRACER_ENABLEDです。

重要

環境変数を介してのエージェント設定では、Javaエージェントバージョン4.10.0以上が必要です

4.10.0以降のエージェントバージョンについては、次の環境変数を使用できます:

APMとCodeStreamを使用している場合は、リポジトリを関連付ける方法と、ビルドSHAまたはリリースタグをエラー受信トレイに関連付ける方法をご覧ください。

システムプロパティ

システムプロパティを設定して、newrelic.ymlファイルで設定を上書きできます。設定ファイルの所定の設定に対応するシステムプロパティは、newrelic.configでプリフィックス化された設定名です。たとえば、log_level設定のシステムプロパティはnewrelic.config.log_levelです。

スタンザにネストされた設定については、スタンザ名を設定名に追加します。たとえば、transaction_tracerスタンザのenabled設定のシステムプロパティはnewrelic.config.transaction_tracer.enabledです。

設定の上書きに加え、次のシステムプロパティをエージェントは認識します:

属性

このオプションを設定するには、attributesスタンザを使用します。上書きするには、newrelic.config.attributesプリフィックス化システムプロパティを使用します。

属性は、トランザクショントレースやトレースされたエラー、ブラウザモニタリング、トランザクションイベントについての情報を提供するキーの値のペアです。各宛先の下に、属性スタンザもあります。詳細については、Javaエージェント属性および属性の有効化と無効化属性の例をご覧ください。

非同期インストゥルメンテーション

このオプションはcommonスタンザで設定され、プリフィックス化システムプロパティを使用して上書きできます。

ブラウザのモニタリング

このオプションはbrowser_monitoringスタンザで設定され、newrelic.config.browser_monitoringプリフィックス化システムプロパティを使用して上書きできます。

ブラウザモニタリングにより、ウェブサイトでユーザーが実際に体験しているパフォーマンスについての知見が得られます。これは、少量のJavacriptコードを書くページのヘッダーとフッターに挿入することで、ユーザーのブラウザがウェブページのダウンロードとレンダリングにかかる時間を測定して行われます。

サーキットブレーカー

この設定は、Javaブレーカーの動作をカスタマイズします。この設定は、デフォルトではnewrelic.ymlに含まれていません。変更後にJVMを再起動する必要はありません。

サーキットブレーカーをカスタマイズする場合、スタンザをcommonスタンザの下に追加します。

common: &default_settings​
  OTHER_CONFIG_SETTINGS
  circuitbreaker:
    enabled: true
    memory_threshold: 20
    gc_cpu_threshold: 10

クラウドプラットフォームの利用

このオプションはutilizationスタンザで設定され、newrelic.config.utilizationプリフィックス化システムプロパティを使用して上書きできます。

エージェントは利用情報を収集し、New Relicサービスに送信します。エージェントは、Amazon Web Services(AWS)EC2インスタンスおよびDockerコンテナから情報を収集できます。

クロスアプリケーショントレーサー

重要

クロスアプリケーショントレースは、エージェントバージョン7.4.0では非推奨となっており、将来のエージェントバージョンでは削除されます。

クロスアプリケーショントレーシングを使用する代わりに、ディストリビューティッド(分散)トレーシング機能を使用することをお勧めします。ディストリビューティッド(分散)トレーシングはクロスアプリケーショントレーシングの機能を向上させたものであり、大規模な分散システムに適しています。

このクロスアプリケーショントレーシングオプションはcross_application_tracerスタンザで設定され、newrelic.config.cross_application_tracerプリフィックス化システムプロパティを使用して上書きできます。

クロスアプリケーショントレーシングは、Apache HttpClientライブラリを使用して、リクエストヘッダーとレスポンスヘッダーを外部呼び出しに追加します。これにより、他のNew Relicエージェントが監視するアプリケーションを呼び出す際のデータのパフォーマンスが向上します。

カスタムイベント

カスタムイベントはcustom_insights_eventsスタンザで設定され、newrelic.config.custom_insights_eventsプレフィックス化システムプロパティを使用して上書きできます。

APMでは、New Relic言語エージェントAPIによりカスタム イベントデータを記録でき、これをクエリすることが可能です

重要

4.1.0より前のJavaエージェントのバージョンでは、次のYAML設定が認識されます。

custom_insights_events.enabled: true
custom_insights_events.max_samples_stored: 5000

エージェントのバージョンが4.1.0以上の場合、YAML設定はネストされたスタンザフォーマットを使用します。

custom_insights_events:
enabled: false
max_samples_stored: 5000

カスタムインストゥルメンテーション

このオプションはclass_transformerスタンザで設定され、newrelic.config.class_transformerプリフィックス化システムプロパティを使用して上書きできます。

ディストリビューティッド(分散)トレーシング

重要

ディストリビューティッド(分散)トレーシングを有効にすると、クロスアプリケーショントレーシングが無効になり、他のAPM機能に影響します。有効にする前に、移行ガイドを読んでください。

Javaエージェントのバージョン4.3.0以降が必要です。

ディストリビューティッド(分散)トレーシングでは、リクエストが経由する分散システムのパスを見ることができます。設定ファイルで、distributed_tracingスタンザで設定できます。newrelic.config.distributed_tracingプレフィックス化システムプロパティを使用して上書きできます。

エラーコレクター

このオプションはerror_collectorスタンザで設定され、特に明記されていない限り、newrelic.config.error_collectorプリフィックス化システムプロパティを使用して上書きできます。エラーコレクターは、捕捉されていない例外についての情報を取得し、New Relicに送信して表示します。

ヒント

UIを介してのエラー設定の方法を含む、Javaエージェントのエラー設定の方法については、Javaエージェントのエラー設定をご覧ください。

外部トレーサー

この外部トレーシングオプションはexternal_tracerスタンザで設定され、newrelic.config.external_tracerプリフィックス化システムプロパティを使用して上書きできます。

ホスト名の設定

このオプションはprocess_hostスタンザで設定され、newrelic.config.process_hostプリフィックス化システムプロパティを使用して上書きできます。

このプロパティは、UIに表示されるホスト名の設定に使用します:

無限トレーシング

重要

要件:

Infinite Tracingをオンにするには、ディストリビューティッド(分散)トレーシングを有効にして、以下の追加設定を加えます。例えば、「言語エージェント:ディストリビューティッド(分散)トレーシングを構成する」をご覧ください。

Jarコレクター

Javaエージェントは、アプリケーションクラスパス上のJarに関する情報とそのバージョンを収集します。

Jarコレクション設定はjar_collectorスタンザで設定され、newrelic.config.jar_collectorプリフィックス化システムプロパティを使用して上書きできます。オプションに含まれるもの

JFR(リアルタイムプロファイリング)

Javaエージェントは、Java Flight Recorder(JFR)を使用して、リアルタイムプロファイリング用の忠実度の高いJVMデータを収集します。

リアルタイムプロファイリングは、エージェントyaml内のjfrスタンザで設定できます。この場合、newrelic.config.jfr.でプリフィックス化されたシステムプロパティ、またはNEW_RELIC_JFR_でプリフィックス化された環境変数を使用します。

JMX

このオプションを設定するには、jmxスタンザを使用します。上書きするには、newrelic.config.jmxプリフィックス化システムプロパティを使用します。

Javaエージェントは、JMXを使用してJVMデータを収集します。また、このエージェントは、他のトレースシステムで使用できるJMX上のリンクメタデータを公開できます。

Logs in Context

Javaエージェントの7.6.0リリース以降、Logs in Contextのサポートがエージェントに直接追加され、対応のロギングフレームワークで簡単に使用できるようになりました。

これらの設定の変更はローカルエージェント設定ファイルで動的に行われ、有効にするためにエージェントを再起動する必要はありません。設定の例:

application_logging:
enabled: true
forwarding:
enabled: true
max_samples_stored: 10000
metrics:
enabled: true
local_decorating:
enabled: false

Logs in Context設定はapplication_loggingスタンザで設定され、newrelic.config.application_loggingプリフィックス化システムプロパティを使用して上書きできます。利用可能な唯一のオプションは、以下のとおりです。

対応のロギングフレームワークを使用していて、エージェントを使用してアプリケーションログをNew Relicに送信する場合は、forwardingスタンザの下の設定から制御できます。この設定は、newrelic.config.application_logging.forwardingプレフィックス化システムプロパティによって上書きできます。利用可能なオプションは、以下のとおりです。

Javaエージェントは、個々のログラインを装飾して送信できるほか、ログメトリックデータをキャプチャすることもできます。ログメトリックデータはNew Relic UIのログチャートに表示されます。metricsスタンザの下の設定でこれを制御でき、newrelic.config.application_logging.metricsプリフィックス化システムプロパティによって上書きできます。利用可能な唯一のオプションは、以下のとおりです。

local_decoratingスタンザを使用すると、ローカルログラインの装飾を制御でき、newrelic.config.application_logging.local_decoratingプレフィックス化システムプロパティで上書きできます。利用可能な唯一のオプションは、以下のとおりです。

ロギングの設定

これは、一般的な設定変数の一部です。デバッグのため頻繁に微調整が行われるため、ここで分割されます。

ロギング設定変数の一部は動的であり、有効にするのにホストの再起動は不要です。たとえば、ログファイルの増加が速すぎる場合、log_levelの設定の詳細度を下げてレポートの頻度を減らすことができます。

ログのローテーションに影響を与える設定変数の優先順位は次のとおりです。

  • log_dailytrueの場合、その他のログローテーション設定は無視されます。
  • log_file_count1または0の場合、サイズ制限は無視されます。
  • 最後に、エージェントはlog_limit_in_kbytesを適用します。

増加率によっては、ログファイルのサイズが設定した値を若干超えることがあります。

メッセージトレーサー

このオプションはmessage_tracerスタンザで設定され、newrelic.config.message_tracerプリフィックス化システムプロパティを使用して上書きできます。

スパンイベント

スパンイベントディストリビューティッド(分散)トレーシングに関してレポートされます。スパンイベントをレポートするには、ディストリビューティッド(分散)トレーシングが有効になっていなければなりません。

スパン設定はspan_eventsスタンザで設定され、newrelic.config.span_eventsプリフィックス化システムプロパティを使用して上書きできます。オプションに含まれるもの

重要

スパンイベント属性のフィルタリングには、Javaエージェントバージョン4.10.0以上が必要です。

例外の除去

このオプションはstrip_exception_messagesスタンザで設定され、特に明記されていない限り、newrelic.config.strip_exception_messages​プリフィックス化システムプロパティを使用して上書きできます。この設定を有効にして、Java例外メッセージをNew Relicにレポートするかどうかを制御できます。

スレッドプロファイラー

このオプションはthread_profilerスタンザで設定され、newrelic.config.thread_profilerプリフィックス化システムプロパティを使用して上書きできます。

スレッドプロファイラーは、実行時に、アプリケーションのスレッドでのウォールクロックタイムやCPU時間、メソッド呼び出し数を測定します。

Transactionイベント

このオプションはtransaction_eventsスタンザで設定され、newrelic.config.transaction_eventsプリフィックス化システムプロパティを使用して上書きできます。

トランザクションイベントは、UIでヒストグラムとパーセンタイルを表示するためのデータを提供します。

重要

以前は、このスタンザはanalytics_eventsと呼ばれていました。設定ファイルで現在もanalytics_eventsを使用している場合、エージェントを更新してtransaction_eventsを使用します。

トランザクションセグメント

このオプションはtransaction_segmentsスタンザで設定され、newrelic.config.transaction_segmentsプリフィックス化システムプロパティを使用して上書きできます。

トランザクションセグメントは、個別の作業単位(一般的にはメソッド呼び出し)を表し、トランザクショントレース内に表示されます。

重要

トランザクションセグメント属性のフィルタリングには、Javaエージェントバージョン4.10.0以上が必要です。

トランザクショントレーサー

このオプションはtransaction_tracerスタンザで設定され、newrelic.config.transaction_tracerプリフィックス化システムプロパティを使用して上書きできます。

トランザクショントレーシングは、スロートランザクションについての深い情報を捕捉し、New Relicサービスに送信します。トランザクションには、発効されたクエリステートメントを含む、トランザクションの正確な呼び出しの順序が含まれます。

重要

トランザクション名の末尾に角括弧[suffix]を使わないでください。New Relicは名前から自動的に角括弧を除去します。代わりに、必要に応じて丸括弧(suffix)、またはその他の記号を使ってください。

Copyright © 2023 New Relic株式会社。

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