• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

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

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

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

設定ファイルの構成

newrelic.ymlファイルには、次の異なる環境ごとに個別のセクションがあります。

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

New Relicは、commonセクションの設定を、これらの各環境に適用します。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プリフィックス化システムプロパティを使用します。

環境変数

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

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

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

セクションにネストされた設定については、セクション名を設定名に追加します。例えば:

class_transformer:
com.newrelic.instrumentation.kafka-clients-spans-0.11.0.0:
enabled: true

上記の設定は、次の環境変数に変換されます。 NEW_RELIC_CLASS_TRANSFORMER_COM_NEWRELIC_INSTRUMENTATION_KAFKA_CLIENTS_SPANS_0_11_0_0_ENABLED

重要

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

システムプロパティ

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

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

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

属性

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

属性は、トランザクショントレースやトレースされたエラー、、トランザクションイベントについての情報を提供するキーの値のペアです。各宛先の下に、attributeセクションがあります。詳細については、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)、Azure、Google Cloud Platform、Pivotal Cloud Foundryのインスタンスから情報を収集できます。また、DockerコンテナとKubernetesサービスに関連する情報も収集します。

コードレベルのメトリクス

コードレベルのメトリクスは、コードがメソッドレベルでどのように機能しているかについて詳細な洞察を提供します。自動的にインストゥルメントされた、または@Traceアノテーションによってインストゥルメントされた各メソッドのメトリクスが表示されます。コードレベルのメトリクスの詳細については、CodeStreamによるパフォーマンス監視を参照してください。

コードレベルのメトリクスオプションはcode_level_metricsセクションで設定します。これらは、newrelic.config.code_level_metricsプレフィックス化システムプロパティを使用して上書きできます。

エラーインボックスの設定

次のタグのいずれかを設定すると、エラーが発生しているソフトウェアのバージョンを特定するのに役立ちます。

  • NEW_RELIC_METADATA_SERVICE_VERSION デプロイされているコードのバージョン(多くの場合、1.2.3などのセマンティックバージョン)を含むイベントデータにtags.service.versionが作成されますが、常にそうとは限りません。
  • NEW_RELIC_METADATA_RELEASE_TAG リリースタグを含むイベントデータ(v0.1.209またはリリース-209など)にtags.releaseTagを作成します。
  • NEW_RELIC_METADATA_COMMIT コミットSHAを含むイベントデータに対してtags.commitを作成します。SHA全体、または最初の7文字(例:734713b)のみを使用することもできます。

エラーインボックスの今後のリリースでは、ソフトウェアのどのバージョンでエラーが発生しているかを自動追跡します。バージョンデータはCodeStreamに表示されます。

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

重要

クロスアプリケーショントレースは、エージェントバージョン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

class_transformerセクションでインストルメンテーション関連の設定を行います。newrelic.config.class_transformerプリフィックス化システムプロパティまたはNEW_RELIC_CLASS_TRANSFORMER_プリフィックス化環境変数を使用して、この設定を上書きできます。

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

重要

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

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

ディストリビューティッド(分散)トレーシングでは、リクエストが経由する分散システムのパスを見ることができます。Javaエージェントのバージョン7.4.0以降では、デフォルトでオンになっています。

設定ファイルでは、distributed_tracingセクションでこれを手動でオーバーライドできます。プレフィックス付きのシステムプロパティ(newrelic.config.distributed_tracing)または環境変数(NEW_RELIC_DISTRIBUTED_TRACING_ENABLED)を使用して、オーバーライドすることもできます。以下の例を参照してください。

ディストリビューティッド(分散)トレーシングの設定の詳細については、Javaアプリケーションのディストリビューティッド(分散)トレーシングを有効にするを参照してください。

エラーコレクター

エラーコレクター設定は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をオンにするには、ディストリビューティッド(分散)トレーシングを有効にして、以下の追加設定を加えます。たとえば、言語エージェント:ディストリビューティッド(分散)トレーシングの設定を参照してください。

インストゥルメンテーション

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

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上のリンクメタデータを公開できます。

Kafkaメッセージキュー

Kafkaインストゥルメンテーション設定の詳細については、Kafkaメッセージキューのインストゥルメントページを参照してください。

Logs in Context

Javaエージェントバージョン7.6.0以降、Logs in contextのサポートがエージェントに追加され、サポート対象のロギングフレームワークで簡単に使用できるようになりました。コンテキストのログにJavaエージェントを使用するためのヒントについては、コンテキスト内のJavaログを参照してください。

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

application_logging:
enabled: true
forwarding:
enabled: true
max_samples_stored: 10000
context_data:
enabled: false
include:
exclude:
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エージェントは、コンテキストデータ(logback/slf4jのマップされた診断コンテキスト、log4j2のThreadContext)をキャプチャし、その内容をNew Relicに転送されるログの属性として追加できます。これを制御するには、forwardingセクションの下にネストされているcontext_dataセクションの設定を使用します。newrelic.config.application_logging.forwarding.context_dataプリフィックス化システムプロパティを使用して、この設定を上書きできます。利用可能なオプションは、以下のとおりです。

ログメトリクス

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

ログ装飾

local_decoratingセクションでログ装飾設定を行えます。これを使用して、ローカルログラインを装飾する方法を制御できます。newrelic.config.application_logging.local_decoratingプリフィックス化システムプロパティを使用して、この設定を上書きできます。利用可能な唯一のオプションは、以下のとおりです。

ロギングの設定

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

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

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

  • log_dailytrueの場合:

    • log_limit_in_kbytes値がゼロより大きい場合、複合トリガーポリシーが適用され、ログは1日に1回、または定義されたサイズに達したときにロールされ、最大log_file_count個のファイルが保持されます
    • log_limit_in_kbytes値がゼロの場合、ログは1日に1回ローリングされ、最大log_file_count個のファイルが保持されます
  • log_dailyfalseおよびlog_limit_in_kbytes > 0の場合、サイズベースのポリシーが設定され、定義されたサイズに達するとログがロールされ、最大log_file_count個のファイルが保持されます

  • log_dailyfalseおよびlog_limit_in_kbytes = 0の場合、ログファイルのローリングロジックは設定されません

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

メッセージトレーサー

message_tracerセクションでメッセージトレーサーオプションを設定します。newrelic.config.message_tracerプリフィックス化システムプロパティを使用して、この設定を上書きできます。

Securityエージェント

New Relic Securityエージェントのインタラクティブアプリケーションセキュリティテスト(IAST)は、脆弱なペイロードを含む生成済みHTTPリクエストを再生することで、お使いのアプリケーションに悪用できる脆弱性がないかをテストします。

重要

実稼働ソフトウェアの脆弱性の露呈を避ける場合にのみ、非実稼働のデプロイメントでIASTを実行してください。

New Relic Securityエージェントの設定は、securityセクションで設定できます。newrelic.config.securityプリフィックス化システムプロパティを使用して、この設定を上書きできます。オプションには次のものが含まれます。

重要

New Relic Securityエージェントのインタラクティブアプリケーションセキュリティテスト(IAST)モードには、Javaエージェントのバージョン8.4.0以降が必要です。

低速トランザクションの検出

Javaエージェントバージョン8.7.0以降、エージェントはSlowTransactionイベント経由で低速トランザクションを検出できるようになりました。これらのイベントは、トランザクションの長さが特定のしきい値を超えた場合に記録されます。デフォルトのしきい値は600000ミリ秒(10分)です。

低速トランザクションの検出はslow_transactionsで設定され、newrelic.config.slow_transactionsプリフィックス化システムプロパティを使用して、上書きできます。オプションには次のものが含まれます。

スパンイベント

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

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 © 2024 New Relic株式会社。

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