一般設定はJavaエージェントの主要な設定オプションであり、ライセンスキー、アプリケーション名、ロギング、プロキシ、高セキュリティモードなどが含まれます。
設定ファイルの構成
newrelic.ymlファイルには、次の異なる環境ごとに個別のセクションがあります。
New Relicは、commonセクションの設定を、これらの各環境に適用します。newrelic.environmentシステムプロパティを環境名に設定して、デフォルトとしてその他の環境を選択できます。
newrelic.ymlを編集する場合、YAML形式に従うよう注意してください。New RelicのJavaエージェントで使用する前に、YAMLバリデータを使用して構文が正しいことを確認し、以下の規則に従ってください。
Java agent newrelic.yml | Requirements |
|---|
形式 | YMLファイルには、大文字と小文字の区別があります。 |
インデント | すべてのインデントは、2文字の空白にする必要があります。その他のインデントにすると、エージェントの起動時にUnable to parse configuration fileエラーが生じます。 - ファイルの同じセクションのデータは、同じレベルのインデントを使用します。
- サブセクションは、2つの空白を追加してインデントします。
|
ファイルの変更 | 変更を有効にするには、JVMホストプロセスを再起動する必要があります。 Exception: log_levelおよびaudit_modeに変更しても、再起動は不要です。ブレーカーの下でのプロパティの変更では、再起動が必要です。ブレーカーの下でのプロパティの変更では、再起動が必要です。 |
設定の優先順位
設定ファイルで設定を上書きするには、システムプロパティの上書きを使用します。環境によっては、環境変数を使用して、設定ファイルとシステムプロパティの両方を上書きすることもできます。環境変数は主に、Herokuをサポートするために存在します。使用すると、サーバーサイドコンフィグレーションが、その他すべての設定を上書きします。

Javaエージェントでは、サーバーサイドコンフィグレーションが、その他すべての設定を上書きします。環境変数は、Javaシステムプロパティを上書きします。Javaプロパティは、お使いのnewrelic.ymlファイルのユーザー設定を上書きします。ユーザー設定は、newrelic.ymlデフォルト設定を上書きします。
Javaエクステンションディレクトリの設定
Javaエージェントは、プロセスの開始時に設定ファイルを読み込みます。ファイルのあるディレクトリを特定するには、新規のディレクトリを作成するか、既存のエクステンションディレクトリを指定します。
エクステンションディレクトリを作成するには:
newrelic.jarとnewrelic.ymlがあるディレクトリに移動します。extensionsという名前のディレクトリを作成します。newrelic.ymlで、プロパティextensions.dirが設定されていないことを確認します。
既存のJavaエクステンションディレクトリを使用するには:
newrelic.ymlファイルで、commonセクションを見つけます。- プロパティ
extensions.dirを使用して、ファイルの場所を指定します。
一般的な構成設定
commonセクションでこれらのオプションを設定します。これらのオプションを上書きするには、newrelic.configプリフィックス化システムプロパティを使用します。
この設定はrequiredです。お使いのNew Relicアカウントに関連付けられたライセンスキーを指定する必要があります。このキーは、エージェントのデータを、New Relicサービスにあるアカウントと結びつけます。
この設定はrequiredです。New Relicへのデータのレポートに使用するアプリケーション名を定義します。
enable_auto_app_namingがfalseの場合、エージェントはすべてのデータをこのアプリケーションにレポートします。それ以外の場合、エージェントはバックグラウンドタスク(ウェブ以外のアプリケーションのトランザクション)のみをこのアプリケーションにレポートします。
複数のアプリケーションにデータをレポートするには、アプリケーション名をセミコロンで区切ります。たとえば、データをMy ApplicationとMy Application 2にレポートするには、以下を使用します。
app_name: My Application;My Application 2
アプリケーションの命名方法の詳細については、Javaアプリケーションを命名するを参照してください。
フラグを付けてエージェントを有効にします。この設定を使用して、エージェントに実行するかどうかを強制します。
アプリケーションのApdexスコアの、秒単位でのapdex_t閾値。Javaエージェントバージョン1.2.008以上では、apdex_tの値はUIで設定され、newrelic.ymlにある値は無視されます。
同じマシン上の同じアプリについて、JVMを区別するための数。New Relicは一意性を保つためにhost/portを使用しているため、このようなスイッチを各JVMの起動引数に付けて、JVMを区別できます:
-Dnewrelic.config.appserver_port=8081
appserver_portを使用してJVMに名前を付け再起動すると、ドロップダウンとプロファイルインタフェースで個別に表示できるようになります。
重要
これがNew Relicについての唯一の変更です。ホストが何らかの方法で通信を行うポートには、実際には影響はありません。
New Relicに送信されたすべてのデータのエージェントログファイルへのプレーンテキストロギングを有効にします。この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.ymlが変更されます。
タイプ | 弦 |
|---|
値の形式 | /path/to/ca/cert/bundle.pem
|
|---|
New Relicへのセキュアな接続を確立するためにエージェントが使用するカスタムSSL証明書バンドルへのパスを指定します。カスタムSSL証明書バンドルにNew Relicに接続するのに十分な証明書が含まれていない場合は、必要な証明書をカスタム証明書バンドルにマージする必要があります。
重要
現在JavaエージェントにバンドルされているJava Flight Recorderの実装では、テレメトリーSDKを使用します。ca_bundle_pathを指定しても、JFRオプションがNew Relicへの接続に使用する証明書は更新されません。カスタムトラストストアを使用していて、JavaエージェントのJFR実装を使用したい場合は、必要な証明書をカスタムトラストストアに追加する必要があります。
データストアの接続サイクル中に複数のアドレスが検出された場合は、この設定によってエージェントが選択するアドレスが決まります。
NONE:エージェントは空のアドレスを返します。これはデフォルトの動作です。FIRST:最初に検出されたアドレスを使用します。LAST:最後に検出されたアドレスを使用します。
この設定はJavaエージェントバージョン8.25.0以降に存在します。
各ウェブアプリについて別個に、データのレポート作成を有効にします。自動アプリネーミングのサポートを有効にするには、trueに設定します。各ウェブアプリの名前は自動的に検知され、エージェントはそれぞれについてデータを別個にレポートします。これにより、New Relicのウェブアプリのパフォーマンスが、より詳細な粒度で分類されます。
詳細については、自動的なアプリケーションのネーミングをご覧ください。
アプリケーションの命名方法の詳細については、Javaアプリケーションを命名するを参照してください。
コンポーネントベースのトランザクションネーミングを有効にします。コンポーネントベースのトランザクションネーミングを有効にするには、trueに設定します。トランザクションの名前としてウェブリクエストのURIを使用するには、falseに設定します。詳細については、ウェブトランザクションのネーミングをご覧ください。
注意
API呼び出しを実装してトランザクションに名前を付ける場合を除き、自動トランザクションネーミングを無効にすると、メトリクスのグループ化問題が発生する可能性が非常に高くなります。
オプションのエクステンションディレクトリの場所を定義します。このプロパティを設定しない場合、エージェントはnewrelic.jarやnewrelic.ymlと同じディレクトリでextensionsという名前のサブディレクトリを検索します。
高いセキュリティを有効にするには、このプロパティをtrueに設定し、New Relicユーザーインタフェースの高セキュリティプロパティを有効にする必要があります。高いセキュリティを有効にするとSSLがオンになり、リクエストとメッセージキューのパラメーターが収集されず、クエリを生の形式でNew Relicに送信できません。
アカウントの有効な挿入APIキーです。これは現在、エージェントによって使用されていません。
このアプリにタグを添付します。
このオプションでタグが有効になり、ラベル機能が置き換えられたことに注意してください。ここで、過去のラベルを引き続きクエリできます。以下のようにセミコロンを区切り文字として使用して、複数のタグを追加できます。
-Dnewrelic.config.labels="tagName1:tagValue1;tagName2:tagValue2;tagName3:tagValue3"
まれに、従来の非同期APIを使用して非同期サーブレット、またはJetty Continuationのライフサイクルを追跡するインストゥルメンテーションでメモリリークが発生することがあります。メモリリークは、一時停止されたものの再開されなかった、リークされたトランザクションとして現れます。この設定は、そのようなシナリオの発生を防ぐための回避策として機能します。このようなメモリリークが発生した場合にのみ、この回避策を有効にすることをお勧めします。
各スタックトレースからエージェントが収集する行数を制限します。この値を増やすと、エージェントが使用するメモリの量とNew Relicに送信されるデータの量が増えるため、パフォーマンスに影響が生じる場合があります。
New Relicコレクターへの接続経路となるプロキシホスト。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。
プロキシ認証のパスワード。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。ユーザー名とパスワード設定を使用して、プロキシサーバーからのBasic Authのチャレンジの認証を行います。
重要
Javaエージェントは、Basic(クリアテキスト)認証をサポートします。
プロキシホストのポート番号。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。
Basic(クリアテキスト)認証など、プロキシ認証のユーザー名。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。ユーザー名とパスワード設定を使用して、プロキシサーバーからのBasic Authのチャレンジの認証を行います。
使用したプロキシスキーム。proxy_scheme: "https"を設定すると、エージェントはHTTPSスキームを使用してプロキシを通じて接続できるようになります。
Reactor Nettyに対してエラーが報告されたかどうか。デフォルトはfalseです。trueに設定すると、Reactor Nettyエラーがレポートされます。
エージェントが直近のメトリクスデータをJVMのシャットダウンの前にNew Relicに送信できるようにするには、JVMシャットダウンの遅延を有効にします。
JVM設定のNew Relicへのレポートを有効にします。
trueに設定すると、JVMプロパティがNew Relicに送信されます。
SSLに移動するには、New Relicコレクターとの接続が必要です。
エージェントはデフォルトでHTTPSを介してNew Relicと通信します。New Relicは、とNew Relic REST APIへのすべてのトラフィックにHTTPSを要求します。
この作業は、アプリケーションコードを処理するスレッドとは非同期的に行われるので、レスポンスタイムはこの変更の影響を直接には受けません。
エージェントを有効にして、アプリの起動直後にNew Relicコレクターを接続します。
トランザクショントレースの詳細をより簡潔にするため、エージェントはScala Futuresをトランザクションセグメントとしてレポートせず、このFuturesはトランザクションの合計時間には寄与しません。
scala_futures_as_segmentsを有効にすると、オーバーヘッドが増加します。Scala Futuresにトランザクションセグメントとしてレポートさせたい場合、トランザクショントレースで表示し、有効化できます:
scala_futures_as_segments:
セグメントの排他時間が合計トランザクションタイムの2%未満の場合、そのメソッド呼び出しのメトリクスはJava/otherで集計されます。
trim_statsをfalseに設定すると、この動作が無効になり、メトリクスを個別に表示できるようになります。
環境変数
環境変数は最優先となり、システムプロパティとyml設定を上書きします。
- 環境変数を設定するには、
export VARNAME=valueコマンドを使用します。 - 環境変数を恒久的に設定するには、
~/.bashrcや~/.bash_profileのようにエクスポート行をファイルに追加します。
システムプロパティから、または環境変数を設定してnewrelic.ymlで、設定を上書きできます。設定ファイルで所定の設定に対応する環境変数は、すべてのドット (.) とダッシュ (-) をアンダースコア (_) で置換したNEW_RELICでプリフィックス化した設定名です。たとえば、log_level設定の環境変数はNEW_RELIC_LOG_LEVELです。
セクションにネストされた設定については、セクション名を設定名に追加します。例えば:
com.newrelic.instrumentation.kafka-clients-spans-0.11.0.0:
上記の設定は、次の環境変数に変換されます。 NEW_RELIC_CLASS_TRANSFORMER_COM_NEWRELIC_INSTRUMENTATION_KAFKA_CLIENTS_SPANS_0_11_0_0_ENABLED
システムプロパティ
システムプロパティを設定して、newrelic.ymlファイルで設定を上書きできます。設定ファイルの所定の設定に対応するシステムプロパティは、newrelic.configでプリフィックス化された設定名です。たとえば、log_level設定のシステムプロパティはnewrelic.config.log_levelです。
セクションにネストされた設定については、セクション名を設定名に追加します。たとえば、transaction_tracerセクションのenabled設定のシステムプロパティはnewrelic.config.transaction_tracer.enabledです。
設定の上書きに加え、エージェントは次のシステムプロパティを認識します。
エージェントバージョン8.7.0以降、 trueに設定され、エージェントがJBoss EAP/Wildflyで実行されている場合、エージェントはパッケージjavax.management下のクラスをシステムクラスローダーで読み込む必要がなくなります。これは、J2EE/Jakarta Management APIが使用されている場合の、JBossモジュールでのアプリケーション起動の問題を解決するために追加されました。詳細については、JBoss/Wildflyのトラブルシューティングに関するドキュメントを参照してください。
サポートされていないJavaバージョンでエージェントを実行できるようにする試験的なフラグ。
表示名を設定して、New Relic UIで「host:port」ラベルを追加します。Javaエージェント3.17以降が必要です。
newrelic設定ファイルへの完全修飾パスを含む文字列。空白の場合、エージェントはnewrelic.ymlがnewrelic.jarと同じディレクトリにあると仮定します。
エージェントのホームディレクトリを含む文字列。これはデフォルトで、エージェントのjarfileと同じディレクトリになります。
タイプ | 弦 |
|---|
デフォルト | newrelic_agent.log
|
|---|
エージェントログファイルの名前を含む文字列。