New Relic Javaエージェントは、newrelic.yml
ファイルから設定を読み取ります。デフォルトで、エージェントは、newrelic.jar
を含むディレクトリ でこのファイルを検索します。newrelic.config.file
システムプロパティを完全修飾ファイル名に設定して、設定ファイルの場所を上書きできます。
New Relicアカウントを作成 (永久無料)し、Javaエージェントをインストール した後、環境に合わせて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エージェントは、プロセスの開始時に設定ファイルを読み込みます。ファイルのあるディレクトリを特定するには、新規のディレクトリを作成するか、既存のエクステンションディレクトリを指定します。
extensionsディレクトリを作成する エクステンションディレクトリを作成するには:
newrelic.jar
とnewrelic.yml
があるディレクトリに移動します。extensions
という名前のディレクトリを作成します。newrelic.yml
で、プロパティextensions.dir
が設定されていないことを確認します。既存のextensionsディレクトリを指定する 既存のJavaエクステンションディレクトリを使用するには:
newrelic.yml
ファイルで、common
セクションを見つけます。プロパティextensions.dir
を使用して、ファイルの場所を指定します。 一般構成設定 common
セクションでこれらのオプションを設定します。このオプションを上書き するには、newrelic.config
プリフィックス化システムプロパティを使用します。
license_key(必須) この設定はrequired です。お使いのNew Relicアカウントに関連付けられたライセンスキー を指定する必要があります。このキーは、エージェントのデータを、New Relicサービスにあるアカウントと結びつけます。
app_name(必須) この設定はrequired です。New Relicへのデータのレポートに使用するアプリケーション名 を定義します。
enable_auto_app_naming
がfalseの場合、エージェントはすべてのデータをこのアプリケーションにレポートします。それ以外の場合、エージェントはバックグラウンドタスク(ウェブ以外のアプリケーションのトランザクション)のみをこのアプリケーションにレポートします。
複数のアプリケーション にデータをレポートするには、アプリケーション名をセミコロンで区切ります。たとえば、データをMy Application とMy Application 2 にレポートするには、以下を使用します。
app_name : My Application;My Application 2
アプリケーションの命名方法の詳細については、Javaアプリケーションを命名する を参照してください。
agent_enabled フラグを付けてエージェントを有効にします。この設定を使用して、エージェントに実行するかどうかを強制します。
apdex_t(非推奨) アプリケーションのApdex スコアの、秒単位でのapdex_t
閾値。Javaエージェントバージョン1.2.008以上では、apdex_t
の値はUIで設定され、newrelic.yml
にある値は無視されます。
appserver_port 同じマシン上の同じアプリについて、JVMを区別するための数。New Relicは一意性を保つためにhost/portを使用している ため、このようなスイッチを各JVMの起動引数に付けて、JVMを区別できます:
-Dnewrelic.config.appserver_port=8081
appserver_port
を使用してJVMに名前を付け再起動すると、ドロップダウンとプロファイルインタフェースで個別に表示できるようになります。
重要 これがNew Relicについての唯一の変更です。ホストが何らかの方法で通信を行うポートには、実際には影響はありません。
audit_mode New Relicに送信されたすべてのデータのエージェントログファイルへのプレーンテキストロギングを有効にします。この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
ca_bundle_path タイプ
文字列
値の形式
/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実装を使用したい場合は、必要な証明書をカスタムトラストストアに追加する必要があります。
enable_auto_app_naming 各ウェブアプリについて別個に、データのレポート作成を有効にします。自動アプリネーミングのサポートを有効にするには、true
に設定します。各ウェブアプリの名前は自動的に検知され、エージェントはそれぞれについてデータを別個にレポートします。これにより、New Relicのウェブアプリのパフォーマンスが、より詳細な粒度で分類されます。
詳細については、自動的なアプリケーションのネーミング をご覧ください。
アプリケーションの命名方法の詳細については、Javaアプリケーションを命名する を参照してください。
enable_auto_transaction_naming コンポーネントベースのトランザクションネーミングを有効にします。コンポーネントベースのトランザクションネーミングを有効にするには、true
に設定します。トランザクションの名前としてウェブリクエストのURIを使用するには、false
に設定します。詳細については、ウェブトランザクションのネーミング をご覧ください。
注意 API呼び出しを実装してトランザクションに名前を付ける場合を除き、自動トランザクションネーミングを無効にすると、メトリクスのグループ化問題 が発生する可能性が非常に高くなります。
extensions.dir オプションのエクステンションディレクトリ の場所を定義します。このプロパティを設定しない場合、エージェントはnewrelic.jar
やnewrelic.yml
と同じディレクトリでextensions
という名前のサブディレクトリを検索します。
high_security 高いセキュリティ を有効にするには、このプロパティをtrue
に設定し、New Relicユーザーインタフェースの高セキュリティプロパティを有効にする必要があります。高いセキュリティを有効にするとSSLがオンになり、リクエストとメッセージキューのパラメーターが収集されず、クエリを生の形式でNew Relicに送信できません。
insert_api_key アカウントの有効な挿入APIキー です。これは現在、エージェントによって使用されていません。
labels このアプリにタグ を添付します。
このオプションでタグが有効になり、ラベル機能が置き換えられたことに注意してください。ここで、過去のラベル を引き続きクエリできます。以下のようにセミコロンを区切り文字として使用して、複数のタグを追加できます。
-Dnewrelic.config.labels = " tagName1:tagValue1;tagName2:tagValue2;tagName3:tagValue3 "
legacy_async_api_skip_suspend まれに、従来の非同期APIを使用して非同期サーブレット、またはJetty Continuationのライフサイクルを追跡するインストゥルメンテーションでメモリリークが発生することがあります。メモリリークは、一時停止されたものの再開されなかった、リークされたトランザクションとして現れます。この設定は、そのようなシナリオの発生を防ぐための回避策として機能します。このようなメモリリークが発生した場合にのみ、この回避策を有効にすることをお勧めします。
max_stack_trace_lines 各スタックトレースからエージェントが収集する行数を制限します。この値を増やすと、エージェントが使用するメモリの量とNew Relicに送信されるデータの量が増えるため、パフォーマンスに影響が生じる場合があります。
proxy_host New Relicコレクター への接続経路となるプロキシホスト。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。
proxy_password プロキシ認証のパスワード。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。ユーザー名とパスワード設定を使用して、プロキシサーバーからのBasic Authのチャレンジの認証を行います。
重要 Javaエージェントは、Basic(クリアテキスト)認証をサポートします。
proxy_port プロキシホストのポート番号。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。
proxy_user Basic(クリアテキスト)認証など、プロキシ認証のユーザー名。プロキシを使用している場合、ホスト設定が必須です。その他のプロキシ設定はオプションです。ユーザー名とパスワード設定を使用して、プロキシサーバーからのBasic Authのチャレンジの認証を行います。
proxy_scheme 使用したプロキシスキーム。proxy_scheme: "https"
を設定すると、エージェントはHTTPSスキームを使用してプロキシを通じて接続できるようになります。
reactor-netty.errors.enabled Reactor Nettyに対してエラーが報告されたかどうか。デフォルトはfalseです。trueに設定すると、Reactor Nettyエラーがレポートされます。
send_data_on_exit エージェントが直近のメトリクスデータをJVMのシャットダウンの前にNew Relicに送信できるようにするには、JVMシャットダウンの遅延を有効にします。
send_data_on_exit_threshold send_environment_info JVM設定のNew Relicへのレポートを有効にします。
send_jvm_props true
に設定すると、JVMプロパティがNew Relicに送信されます。
ssl(非推奨) SSLに移動するには、New Relicコレクターとの接続が必要です。
エージェントはデフォルトでHTTPSを介してNew Relicと通信します。New Relicは、APM とNew Relic REST APIへのすべてのトラフィックにHTTPSを要求 します。
この作業は、アプリケーションコードを処理するスレッドとは非同期的に行われるので、レスポンスタイムはこの変更の影響を直接には受けません。
sync_startup エージェントを有効にして、アプリの起動直後にNew Relicコレクターを接続します。
scala_futures_as_segments トランザクショントレースの詳細をより簡潔にするため、エージェントはScala Futuresをトランザクションセグメントとしてレポートせず、このFuturesはトランザクションの合計時間 には寄与しません。
scala_futures_as_segments
を有効にすると、オーバーヘッドが増加します。Scala Futuresにトランザクションセグメントとしてレポートさせたい場合、トランザクショントレースで表示し、有効化できます:
scala_futures_as_segments :
trim_stats セグメントの排他時間が合計トランザクションタイムの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のトラブルシューティングに関するドキュメント を参照してください。
newrelic.config.experimental_runtime サポートされていないJavaバージョンでエージェントを実行できるようにする試験的なフラグ。
newrelic.config.process_host.display_name 表示名 を設定して、New Relic UIで「host:port」ラベルを追加します。Javaエージェント3.17以降が必要です。
newrelic.config.file newrelic設定ファイルへの完全修飾パスを含む文字列。空白の場合、エージェントはnewrelic.yml
がnewrelic.jar
と同じディレクトリにあると仮定します。
newrelic.home エージェントのホームディレクトリを含む文字列。これはデフォルトで、エージェントのjarfileと同じディレクトリになります。
newrelic.logfile タイプ
文字列
デフォルト
newrelic_agent.log
エージェントログファイルの名前を含む文字列。
AIモニタリング このセクションでは、AIモニタリング のJavaエージェント設定オプションについて詳しく説明します。この機能は、ai_monitoring
設定ファイルのスタンザで、newrelic.config.ai_monitoring.
プリフィックス化システムプロパティ、またはNEW_RELIC_AI_MONITORING_
プリフィックス化環境変数を使用して設定できます。
重要 ディストリビューティッド(分散)トレーシングが無効になっているか、高セキュリティモードを有効にしている場合、AIモニタリングはAIデータを収集しません。
enabled true
に設定すると、AIモニタリングが有効化されます。
record_content.enabled false
に設定すると、エージェントはLLMイベントでキャプチャされた入力および出力コンテンツ(プロンプトやレスポンスのテキスト文字列など)を省略します。これは、LLMとの間で送受信される機密データを記録したくない場合のオプションのセキュリティ設定です。
属性 これらのオプションを設定するには、attributes
セクションを使用します。上書きする には、newrelic.config.attributes
プリフィックス化システムプロパティを使用します。
属性は、トランザクショントレースやトレースされたエラー、ブラウザ監視 、トランザクションイベントについての情報を提供するキーの値のペアです。各宛先の下にattribute
セクションがあります。詳細については、Javaエージェント属性 および属性の有効化と無効化 、属性の例 をご覧ください。
enabled この設定を使用して、すべての属性をオンまたはオフにできます。
include 属性が有効になっている場合、このリストにある属性のキーはNew Relicに送信されます。カンマでリストにあるキーを区切ります。例:
エージェント属性のルール も参照してください。
exclude このリストにある属性キーのいずれも、New Relicに送信されることはありません。カンマでリストにあるキーを区切ります。例:
エージェント属性のルール も参照してください。
http_attribute_mode 属性レポートは、次の方法で設定できます。
YAML:
http_attribute_mode: both
システムプロパティ:
-Dnewrelic.config.attributes.http_attribute_mode = both
環境変数:
NEW_RELIC_ATTRIBUTES_HTTP_ATTRIBUTE = both
設定オプションは次のとおりです。
standard
:レポートには標準(つまり、OTEL)属性が使用されます。この設定を推奨します。これにより、機能への影響が最小限に抑えられ、属性レポートの最低レベルの取り込みが維持されます。legacy
: レポートは再導入されたHTTP属性によって実行され、この設定は現在または今後の機能に影響を与える可能性があります。both
: これはデフォルト設定であり、レポートは再導入されたHTTP属性とOTEL属性によって実行されます。この設定では、データの取り込みも増加します。重要 Javaエージェントのバージョン8.8.0 以降で利用可能です。デフォルト設定のboth
では、データの取り込みが増加します。データ取り込みの増加を避けるには、http_attribute_mode
legacy
またはstandard
に設定して、デフォルトをオーバーライドする必要があります。
非同期インストゥルメンテーション これらのオプションはcommon
セクションで設定され、プリフィックス化システムプロパティを使用して上書き できます。
token_timeout token.expire()
で明示的に失効されていない非同期トークンをエージェントが自動的に失効させるまでの秒数。使用の説明については、トークン: 非同期スレッドの接続 をご覧ください。
重要 この値を増やすと、エージェントが使用するメモリの量が増え、トークンが失効していないことでトランザクションがレポートされなくなるため、パフォーマンスに影響が生じる場合があります。
segment_timeout segment.end()
またはsegment.ignore()
で明示的に終了していないセグメントをエージェントが自動的に終了するまでの秒数。使用の説明については、セグメント: 時間によらない非同期アクティビティ をご覧ください。
重要 この値を増やすと、エージェントが使用するメモリの量が増え、セグメントが終了していないことでトランザクションがレポートされなくなるため、パフォーマンスに影響が生じる場合があります。
ブラウザのモニタリング このオプションはbrowser_monitoring
セクションで設定され、newrelic.config.browser_monitoring
プリフィックス化システムプロパティを使用して上書き できます。
ブラウザモニタリングにより、ウェブサイトでユーザーが実際に体験しているパフォーマンスについての知見が得られます。これは、少量のJavacriptコードを書くページのヘッダーとフッターに挿入することで、ユーザーのブラウザがウェブページのダウンロードとレンダリングにかかる時間を測定して行われます。
auto_instrument デフォルトでは、エージェントはコンパイルされたJSPでAPI呼び出しを自動的に挿入し、モニタリングJavaScriptをウェブページに挿入します。この動作をオフにするには、この属性をfalse
に設定します。
disabled_auto_pages タイプ
文字列のカンマ区切りのリスト
デフォルト
(なし)
auto_instrument
がtrue
の場合、デフォルトですべてのページがインストゥルメントされます。自動インストゥルメンテーションを省略するすべてのページをここに一覧表示します。このページで以後も手動インストゥルメンテーションを使用できます。
たとえば、
disabled_auto_pages : /WEB - INF/jsp/testpage_1.jsp , /WEB - INF/jsp/testpage_2.jsp
attributes.enabled この設定を使用して、ブラウザモニタリングのすべての属性をオンまたはオフにできます。これは、クエリを行えるデータ です。attributes.enabled
がルートレベルでfalseの場合、browser_monitoring
の下でこのプロパティがどのように設定されているかにかかわらず、ブラウザモニタリングで属性は送信されません。
attributes.include 属性がbrowser_monitoring
に関して有効になっている場合は、このリストにあるすべての属性キーがページビューでNew Relicに送信されます。詳しくはエージェント属性ルール を参照してください。
attributes.exclude このリストにある属性キーのいずれも、ページビューでNew Relicに送信されることはありません。詳しくはエージェント属性ルール を参照してください。
サーキットブレーカー この設定は、Javaブレーカー の動作をカスタマイズします。この設定は、デフォルトではnewrelic.yml
に含まれていません。変更後にJVMを再起動する必要はありません。
サーキットブレーカーをカスタマイズする場合、それをcommon
セクションの下に追加します。
common: &default_settings
OTHER_CONFIG_SETTINGS
circuitbreaker:
enabled: true
memory_threshold: 20
gc_cpu_threshold: 10
enabled アプリケーションの動作が想定どおりの場合、サーキットブレーカーを無効にすることもできます。
memory_threshold ブレーカーのトリップを下回るフリーヒープメモリの比率をカスタマイズします。フリーヒープメモリの比率がmemory_threshold
以下で、ガーベージコレクションに費やしたCPUの時間がgc_cpu_threshold
より多い場合、ブレーカーがトリップします。ブレーカーのトリップを発生しにくくするには、memory_threshold
を減らすか、gc_cpu_threshold
を増やします。アプリケーションの運用パフォーマンスと動作に基づき、必要に応じてこの値を調整します。
gc_cpu_threshold ブレーカーのトリップを上回るCPUのガーベージコレクション時間の比率をカスタマイズします。フリーヒープメモリの比率がmemory_threshold
以下で、ガーベージコレクションに費やしたCPUの時間がgc_cpu_threshold
より多い場合、ブレーカーがトリップします。ブレーカーのトリップを発生しにくくするには、memory_threshold
を減らすか、gc_cpu_threshold
を増やします。アプリケーションの運用パフォーマンスと動作に基づき、必要に応じてこの値を調整します。
クラウドプラットフォームの利用 utilization
セクションでクラウドプラットフォームの使用率設定を設定し、newrelic.config.utilization
プリフィックス化システムプロパティを使用して上書きできます。
エージェントは利用情報を収集し、New Relicサービスに送信します。エージェントは、Amazon Web Services(AWS)、Azure、Google Cloud Platform、Pivotal Cloud Foundryのインスタンスから情報を収集できます。また、DockerコンテナとKubernetesサービスに関連する情報も収集します。
detect_aws エージェントがAWSメタデータAPIをポーリングするかどうかを決定します。
detect_azure エージェントがAzureメタデータAPIをポーリングするかどうかを決定します。
detect_gcp エージェントがGoogle Cloud PlatformメタデータAPIをポーリングするかどうかを決定します。
detect_kubernetes エージェントがKUBERNETES_SERVICE_HOST
環境変数を報告するかどうかを決定します。
detect_pcf エージェントがPivotal Cloud Foundry環境変数を読み取るかどうかを決定します。
detect_docker エージェントがDocker情報をファイルシステムから読み取るかどうかを決定します。
コードレベルのメトリクス コードレベルのメトリクス からは、コードがメソッドレベルでどのように機能しているかについて詳細なインサイトが得られます。自動的にインストゥルメントされた、または@Traceアノテーションによってインストゥルメントされた各メソッドのメトリクスが表示されます。
コードレベルのメトリクスオプションはcode_level_metrics
セクションで設定します。これらは、newrelic.config.code_level_metrics
プレフィックス化システムプロパティを使用して上書き できます。
enabled エージェントバージョン7.10.0では、コードレベルのメトリクス はデフォルトで無効になっています。オンにするには、trueに設定します。エージェントバージョン7.11.0以降では、前述のように、デフォルト設定はtrue
です。
エラーインボックスの設定 次のタグのいずれかを設定すると、エラーが発生しているソフトウェアのバージョンを特定するのに役立ちます。
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設定はネストされたセクションフォーマットを使用します。
enabled これにより、カスタムイベントサービスが有効になります。
max_attribute_value 属性値の最大サイズ。それを超えると値は切り捨てられます。デフォルトは255
バイト(UTF-8文字セットエンコードの場合)で、最大制限は4095
です。
この設定はJavaエージェントバージョン8.9.0以降に存在します。
max_samples_stored 60秒ごとにレポートされた、サンプリングされたカスタムイベントの最大数。 AIモニタリング のエージェントを構成する場合は、最大値100000
に設定します。 最大量のLLMイベントのキャプチャを保証しますclass_transformer
セクションでインストルメンテーション関連の設定を行います。newrelic.config.class_transformer
プリフィックス化システムプロパティ またはNEW_RELIC_CLASS_TRANSFORMER_
プリフィックス化環境変数 を使用して、この設定を上書きできます。
enhanced_spring_transaction_naming 有効にすると、拡張されたSpringトランザクションの名前付けにより、Springコントローラーから発生するすべてのトランザクションに、定義されたルートとHTTPメソッドの後に名前が付けられます。例:/customer/v1/edit (POST)
。これには、WebMVC関連のアノテーション(@RestController
、@Controller
、@RequestMapping
など)を使用してインターフェイス/クラスを実装または拡張するコントローラーが含まれます。
デフォルトでは、これはfalse
に設定されており、コントローラーのクラス名とメソッドに基づいてこれらのタイプのコントローラーのトランザクションに名前が付けられます。たとえば、CustomerController/edit
。これは、以前のエージェントバージョンから引き継がれた命名ロジックです。実際のクラスに存在するすべての関連アノテーションを備えた「標準」コントローラーでも、ルートとHTTPメソッドに基づいて名前が付けられます。
この設定はJavaエージェントバージョン8.9.0以降に存在します。
trace_annotation_class_name どのユーザー指定の方法でインストゥルメントするかの決定にエージェントが使用するアノテーションクラスのフルクラス名を含む文字列。カスタムアノテーションの詳細については、Javaカスタムメトリック収集 をご覧ください。
com.newrelic.instrumentation.servlet-user ディストリビューティッド(分散)トレーシング ディストリビューティッド(分散)トレーシング では、リクエストが経由する分散システムのパスを見ることができます。Javaエージェントのバージョン7.4.0以降では、デフォルトでオンになっています。
設定ファイルでは、distributed_tracing
セクションでこれを手動でオーバーライドできます。プレフィックス付きのシステムプロパティ(newrelic.config.distributed_tracing
)または環境変数(NEW_RELIC_DISTRIBUTED_TRACING_ENABLED
)を使用して、オーバーライドすることもできます。以下の例を参照してください。
ディストリビューティッド(分散)トレーシングの設定の詳細については、Javaアプリケーションのディストリビューティッド(分散)トレーシングを有効にする を参照してください。
enabled これをfalse
に設定し、ディストリビューティッド(分散)トレーシングを無効にします。たとえば、設定ファイルで、以下を使用します。
ディストリビューティッド(分散)トレーシングを無効にするその他のオプションは次のとおりです。
システムプロパティ :
-Dnewrelic.config.distributed_tracing.enabled = false
環境変数:
NEW_RELIC_DISTRIBUTED_TRACING_ENABLED = false
デフォルトで、エージェントのサポートされたバージョンは、newrelic
ヘッダーとディストリビューティッド(分散)トレーシング用のW3Cトレースコンテキストヘッダーの両方を使用します。newrelic
ディストリビューティッド(分散)トレーシングヘッダーを使用すると、W3Cトレースコンテキストヘッダーをサポートしない古いエージェントとの相互運用が可能になります。W3Cトレースコンテキストヘッダーをサポートするエージェントバージョンは、ディストリビューティッド(分散)トレーシング用のnewrelic
ヘッダーよりこのヘッダーを優先します。
newrelic
ヘッダーを使用しない場合、これをtrue
に設定すると、エージェントがnewrelic
ヘッダーを除外し、ディストリビューティッド(分散)トレーシング用のW3Cトレースコンテキストヘッダーのみを使用するようになります。
たとえば、設定ファイルでnewrelic
ヘッダーを除外するには、次のものを使用します。
exclude_newrelic_header : true
システムプロパティ を使用してnewrelic
ヘッダーを除外するには、次のものを使用します。
-Dnewrelic.config.distributed_tracing.exclude_newrelic_header = true
エラーコレクター エラーコレクター設定はerror_collector
セクションで設定します。特に明記されていない限り、newrelic.config.error_collector
プリフィックス化システムプロパティを使用して、この設定を上書き できます。エラーコレクターは、捕捉されていない例外についての情報を取得し、New Relicに送信して表示します。
ignore_classes タイプ
完全修飾class_name
文字列のリストを含むセクション
デフォルト
(なし)
指定された例外クラス名は無視され、エラー率やApdexスコアには影響はなく、またAPMにレポートされません。 Cannot be specified by system property.
この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
たとえば、
- "com.example.MyException"
- "com.example.DifferentException"
環境変数を使用して、無視する例外クラス名を一覧表示できます。
NEW_RELIC_ERROR_COLLECTOR_IGNORE_CLASSES = " [\"com.example.MyException\", \"com.example.DifferentException\"] "
ignore_messages タイプ
完全修飾class_name
とエラークラスごとのmessages
のリストを含むセクション
デフォルト
(なし)
エージェントが無視すべき例外クラス名を指定します。無視されたメッセージはエラー率やApdexスコアには影響を与えず、またAPMにレポートされません。以下で構成されるyaml
ペアを含みます。
APMにレポートされない完全修飾例外クラス名
AND
一致する例外message
のリスト(少なくとも1つ必要)
例外クラス名がエラーと一致するが、メッセージは一致しない場合、そのエラーは無視will not 。メッセージ文字列は、一致のcontains
を使用します。メッセージは自身には提供できず、必ず完全修飾クラス名とペアになっている必要があります。 Cannot be specified by system property.
この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
たとえば、
- "Some error message to ignore"
- "Some other error message to ignore"
com.example.DifferentException :
- "Some different error message to ignore"
環境変数を使用して、例外クラス名と無視するメッセージを一覧表示できます。
NEW_RELIC_ERROR_COLLECTOR_IGNORE_MESSAGES = " {\"com.example.MyException\": [\"Some error message to ignore\", \"Some other error message to ignore\"], \"com.example.DifferentException\": [\"Some different error message to ignore\"]} "
ignore_status_codes タイプ
文字列と範囲のカンマ区切りのリスト
デフォルト
404
エラーとして扱わないHTTPステータスコードの個別の範囲とダッシュ付きの範囲で構成される、カンマ区切りのリスト。
このプロパティがnewrelic.yml
設定ファイルでコメントアウトされている場合、404ステータスコードは自動的に無視されます。サーバー側の設定 を使用する場合、無視するにはステータスコード404を指定する必要があります。
この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
たとえば、
ignore_status_codes : 404 , 507 - 511
expected_classes タイプ
完全修飾class_name
文字列のリストを含むセクション
デフォルト
(なし)
指定された例外クラスが、エラーをAPMにレポートする間にエラー率やApdexスコアに影響を与えないようにします。 Cannot be specified by system property.
この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
たとえば、
- "com.example.MyException"
- "com.example.DifferentException"
環境変数を使用して、予想例外クラス名を一覧表示できます。
NEW_RELIC_ERROR_COLLECTOR_EXPECTED_CLASSES = " [\"com.example.MyException\", \"com.example.DifferentException\"] "
expected_messages タイプ
完全修飾class_name
とエラークラスごとのmessages
のリストを含むセクション
デフォルト
(なし)
想定済みとマークされ、エラー率やApdexスコアに影響を与えないようにするための完全修飾例外クラス名と、一致する例外message
のリストで構成される、yamlペアを含みます。後者では、少なくとも1つのメッセージが必要です。例外クラス名がエラーと一致するが、メッセージが一致しない場合、そのエラーは想定済みとマークされず、エラー率やApdexスコアには影響を与えwill not 。
メッセージ文字列は、一致のcontains
を使用します。メッセージは自身には提供できず、必ず完全修飾クラス名とペアになっている必要があります。 Cannot be specified by system property.
この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
たとえば、
- "Some expected error message"
- "Some other expected error message"
com.example.DifferentException :
- "Some different expected error message"
環境変数を使用して、予想例外クラス名とメッセージを一覧表示できます。
NEW_RELIC_ERROR_COLLECTOR_EXPECTED_MESSAGES = " {\"com.example.MyException\": [\"Some error message to ignore\", \"Some other error message to ignore\"], \"com.example.DifferentException\": [\"Some different error message to ignore\"]} "
expected_status_codes タイプ
文字列と範囲のカンマ区切りのリスト
デフォルト
(なし)
想定済みとマークされ、エラー率やApdexスコアに影響を与えない、HTTPステータスコードの個別の範囲とダッシュ付き範囲で構成される、カンマ区切りのリスト。
この設定は動的なので、エージェントを実行すると、JVMを再起動せずにnewrelic.yml
が変更されます。
たとえば、
expected_status_codes : 415 , 500 - 506
予期されるステータスコードは、NEW_RELIC_ERROR_COLLECTOR_EXPECTED_STATUS_CODES
環境変数を指定することもできます。
attributes.enabled この設定を使用して、トレースエラーのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabled
がfalse
である場合は、このプロパティがerror_collector
で設定されているかにかかわらず、属性がトレースエラーに送られることはありません。
attributes.include 属性がトレースエラーについて有効になっている場合、このリストにあるすべての属性キーが、トレースされたエラーでNew Relicに送信されます。詳しくはエージェント属性ルール を参照してください。
attributes.exclude このリストにある属性キーのいずれも、トレースエラーでNew Relicに送信されることはありません。詳しくはエージェント属性ルール を参照してください。
ignoreErrorPriority トランザクションで複数のエラーが検出された場合、デフォルトでは最後のエラーのみがレポートされます。このプロパティをfalse
に設定すると、最初に検出されたエラーのみがレポートされます。詳細については、noticeError API を参照してください。例:
ignoreErrorPriority : false
ignore_errors(非推奨) タイプ
文字列のカンマ区切りのリスト
デフォルト
(なし)
指定されたすべての例外クラス名は、エラーとして扱われることはありません。Javaエージェント3.40.0で非推奨となり、ignore_classes
で置換されています。
たとえば、
ignore_errors : some.other.MyException
外部トレーサー 外部トレースオプションはexternal_tracer
セクションで設定します。newrelic.config.external_tracer
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
exclude_request_uri この設定を使用して、エラーとトランザクショントレースについて継続中のリクエストURIの収集を制御できます。この情報の収集を無効にするには、これをtrueに設定します。
ホスト名の設定 ホスト名設定オプションはprocess_host
セクションで設定します。newrelic.config.process_host
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
このプロパティを使用して、UIに表示されるホスト名を設定します。
display_name 表示名 を設定して、New Relic UIで「host:port」ラベルを追加します。
ipv_preference ホスト名を決定できない場合、ホストのIPアドレスを使用します。このプロパティは、IPv4またはIPv6アドレスを使用するかどうかを決定します。デフォルトはIPv4です。
無限トレーシング Infinite Tracingをオンにするには、ディストリビューティッド(分散)トレーシングを有効にして、以下の追加設定を加えます。たとえば、言語エージェント:ディストリビューティッド(分散)トレーシングの設定 を参照してください。
trace_observer.host 有効なInfinite Tracing トレース オブザーバーのホストエントリを取得する方法については、トレースオブザーバーを検索または作成する をご覧ください。
YAMLを介して設定することもできます:
infinite_tracing:
trace_observer:
host: YOUR_TRACE_OBSERVER_HOST
システムプロパティnewrelic.config.infinite_tracing.trace_observer.host
または環境変数NEW_RELIC_INFINITE_TRACING_TRACE_OBSERVER_HOST
を使用することもできます。
インストゥルメンテーション このオプションはinstrumentation
スタンザで設定され、newrelic.config.instrumentation
プリフィックス化システムプロパティを使用して上書きできます。
trace_lambda.enabled デフォルトでは、@TraceLambda アノテーションは無効になっています。ラムダ式をトレースするためにアノテーション機能を使用するには、次のように機能を明示的に有効にする必要があります。
YAMLを介して設定することもできます:
システムプロパティnewrelic.config.instrumentation.trace_lambda.enabled=true
または環境変数NEW_RELIC_INSTRUMENTATION_TRACE_LAMBDA_ENABLED
を使用することもできます。
Jarコレクター Javaエージェントは、アプリケーションクラスパス上のJarに関する情報とそのバージョンを収集します。
jarコレクションの設定はjar_collector
セクションで設定します。newrelic.config.jar_collector
プリフィックス化システムプロパティを使用して、この設定を上書き できます。オプションには次のものが含まれます。
enabled Jarコレクションおよびレポートの有効化/無効化に使用されます。
skip_temp_jars 一時的なJarのコレクションの有効化/無効化に使用されます。一時的なJarは、java.io.tmpdir
システムプロパティによって指定されたディレクトリにあるJarです。
jars_per_second 毎秒処理するjarの最大数。正の数値でなければなりません。
JFR(リアルタイムプロファイリング) Javaエージェントは、Java Flight Recorder(JFR)を使用して、リアルタイムプロファイリング 用の忠実度の高いJVMデータを収集します。
リアルタイムプロファイリングは、エージェントYAML内のjfr
セクションで設定できます。この場合、newrelic.config.jfr.
でプリフィックス化されたシステムプロパティ 、またはNEW_RELIC_JFR_
でプリフィックス化された環境変数 を使用します。
enabled true
に設定すると、JFRを使用したリアルタイムプロファイリング が有効になります。この設定は動的に適用されるため、JVMを再起動する必要はありません。
重要 Javaエージェントバージョン7.1.0 では、JFRによるリアルタイムプロファイリングはデフォルトでオンになっています。他のエージェントのバージョン7.0.0以降を使用している場合は、値をtrue
に変更することでJFRをオンにすることができます。
audit_logging true
に設定すると、各収集バッチ内のすべてのJFRメトリクスおよびイベントを表示する監査ログが有効になります。監査ログは非常に詳細であり、トラブルシューティングの目的にのみ使用する必要があります。
JMX これらのオプションを設定するには、jmx
セクションを使用します。上書きする には、newrelic.config.jmx
プリフィックス化システムプロパティを使用します。
Javaエージェントは、JMXを使用してJVMデータを収集します。また、このエージェントは、他のトレースシステムで使用できるJMX上のリンクメタデータを公開できます。
enabled この設定を使用して、すべてのJMX機能をオンまたはオフにできます。
この設定を有効にすると、JavaエージェントがリンクメタデータをリモートJMXに公開できるようになります。
Kafkaメッセージキュー Kafkaインストゥルメンテーション設定の詳細については、Kafkaメッセージキューのインストゥルメント ページを参照してください。
Logs in Context Javaエージェントバージョン7.6.0
以降、Logs in context のサポートがエージェントに追加され、サポート対象のロギングフレームワークで簡単に使用できるようになりました。コンテキストのログにJavaエージェントを使用するためのヒントについては、コンテキスト内のJavaログ を参照してください。
これらの設定の変更はローカルエージェント設定ファイルで動的に行われ、変更を有効にするためにエージェントを再起動する必要はありません。設定の例:
max_samples_stored : 10000
Logs in context設定はapplication_logging
セクションで設定します。これは、newrelic.config.application_logging
プレフィックス化システムプロパティを使用して上書き できます。利用可能な唯一のオプションは、以下のとおりです。
enabled true
に設定して、Logs in contextのコア機能を有効にします。有効にすると、ログが装飾されているか、New Relicに送信されているかにかかわらず、追加のロギングフレームワークインストゥルメンテーションが有効になります。
重要 エージェントリリース7.7.0以降では、デフォルトでエージェント設定ファイルでこの機能が有効になっています。
ログメトリクスのコレクションを含め、この機能を完全に無効にするには、false
に設定します。
ログ転送 サポート対象のロギングフレームワークを使用しており、エージェントを使用してアプリケーションログをNew Relicに送信する場合は、forwarding
セクションの下の設定から制御できます。newrelic.config.application_logging.forwarding
プリフィックス化システムプロパティを使用して、この設定を上書きできます。利用可能なオプションは、以下のとおりです。
enabled New Relicへのアプリケーションログの送信を有効にします。
重要 エージェントリリース7.7.0以降では、デフォルトでエージェント設定ファイルでこの機能が有効になっています。
ログ転送機能を使用すると、データの取り込みが増加し、請求に影響を及ぼす可能性があります。詳細については、データ取り込みの追跡 に関するドキュメントを参照してください。
既存のログ転送ソリューションがあり、エージェントをコンテキストで自動ログを使用するように更新する場合は、disable your old log forwarder にしてください。そうしないと、アプリは二重のログラインを送信します。アカウントによっては、二重請求になる場合があります。詳細については、手順に従い、特定のログフォワーダー を無効にしてください。
これをtrue
に設定すると、装飾されたログがNew Relicに送信されます。
装飾されたログをNew Relicに送信したくない場合は、これをfalse
に設定します。
max_samples_stored 送信する1分あたりのログラインの最大数を指定する正の整数。
ログの送信を事実上無効にするには、これを0
に設定します。
重要 これにより、1分あたり に送信するログの数が制御されます。max_samples_stored
を0
(または12
未満の値)に設定しても、機能自体は無効になりません が、ログラインがNew Relicに送信されることはありません。
これをより低い値に設定して、送信されるログラインの量を減らします(ログサンプリングの原因になる場合があります)。これをより高い値に設定すると、より多くのログラインが送信されます。
各ログは、関連トランザクションと同じ優先度を受け取ります。トランザクション以外で発生するログは、ランダムな優先度を受け取ります。max_samples_stored
によって制限されているため、一部のログが含まれない場合があります。たとえば、ロギングmax_samples_stored
が10,000に設定され、トランザクション1に10,000のログエントリがある場合、トランザクション1のログエントリのみが記録されます。トランザクション1のログが10,000未満の場合、トランザクション1のすべてのログを受け取ります。まだスペースがある場合は、トランザクション2のすべてのログを受け取るなどとなります。
サンプリングされたトランザクションのすべてのログが記録された後も、 max_samples_stored
の限度に達していない場合は、サンプリングに含まれていないトランザクションのログメッセージが送信されます。残っている場合は、トランザクション以外のログメッセージが記録されます。
ログコンテキストデータ Javaエージェントは、コンテキストデータ(logback/slf4jのマップされた診断コンテキスト、log4j2のThreadContext)をキャプチャし、その内容をNew Relicに転送されるログの属性として追加できます。これを制御するには、forwarding
セクションの下にネストされているcontext_data
セクションの設定を使用します。newrelic.config.application_logging.forwarding.context_data
プリフィックス化システムプロパティを使用して、この設定を上書きできます。利用可能なオプションは、以下のとおりです。
enabled これをtrue
に設定すると、コンテキストデータをログ属性としてNew Relicに送信します。
ログのコンテキストデータをNew Relicに送信しない場合は、これをfalse
に設定します。
include context_data
がログ転送に対して有効になっている場合、このリストにあるすべての属性キーがログレコードでNew Relicに送信されます。このリストが空の場合は、すべての属性が送信されます。
exclude context_data
がログ転送に対して有効になっている場合、このリストにあるすべての属性キーはログレコードでNew Relicに送信されません。
包含リストと除外リストは、属性ルール で定義されているルールExclude overrides include
、More specific rules take priority
、Keys are case-sensitive
およびUse an asterisk for wildcards
に従います。
ログメトリクス Javaエージェントは、個々のログラインを装飾して送信できるほか、ログメトリックデータをキャプチャすることもできます。このデータは、New Relic UIのログチャートに表示されます。metrics
セクションでログメトリック設定を行えます。newrelic.config.application_logging.metrics
プリフィックス化システムプロパティによってこの設定を上書きできます。使用可能な唯一のオプションは次のとおりです。
enabled APM Summary ページのチャートに表示されるログとログレベルに関するメトリクス情報の取得を有効にします。
エージェントがログに関するメトリック情報を取得できるようにするには、この設定をtrue
のままにします。
これをfalse
に設定すると、この機能を無効にできます。
重要 ログメトリクスの収集を無効にすると、サマリーページのログチャートが空白になります。
ログ装飾 local_decorating
セクションでログ装飾設定を行えます。これを使用して、ローカルログラインを装飾する方法を制御できます。newrelic.config.application_logging.local_decorating
プリフィックス化システムプロパティを使用して、この設定を上書きできます。利用可能な唯一のオプションは、以下のとおりです。
enabled ローカルに保存されたログラインを装飾するかどうかを制御します。これは、ログ転送が有効かどうかとは無関係であり、別のログ転送ソリューションを使用したい顧客をサポートするために使用します。
これをtrue
に設定すると、エージェントは、対応のフレームワークによってローカルに保存されたログラインにメタデータをリンクするコンテキスト内のログを追加します。
重要 ローカルログ装飾を有効にすると、リンクメタデータがアプリケーションログファイルに追加され、ディスクストレージが増加します。許容できない場合は、この機能を無効にしてください。
ログ転送が有効になっている場合、ローカルログ装飾を使用する必要はありません。これを行うと、リンクメタデータがログメッセージに不必要に追加され、視覚的な混乱を招くおそれがあります。
これをfalse
に設定すると、ローカル装飾機能がオフになります。これは、New Relicに送信されるログラインの装飾には影響しません 。
ロギングの設定 これは、一般的な設定変数の一部です。デバッグのため頻繁に微調整が行われるため、ここで分割されます。
ロギング設定変数の一部は動的であり、有効にするのにホストの再起動は不要です。たとえば、ログファイルの増加が速すぎる場合、log_level
の設定の詳細度を下げてレポートの頻度を減らすことができます。
ログのローテーションに影響を与える設定変数の優先順位と説明は次のとおりです。
増加率によっては、ログファイルのサイズが設定した値を若干超えることがあります。
log_daily ログのローテーションを毎日行うには、true
に設定します。
log_file_count ログローテーションを使用する際に保存するログファイルの最大数。
log_file_name タイプ
文字列
デフォルト
newrelic_agent.log
制限のないログファイル名または標準出力に記録される文字列STDOUT
。
log_file_path タイプ
文字列
デフォルト
logs
newrelic.jar
があるサブディレクトリ
ログファイルのパス。
ヒント log_file_path
が指定されている場合、ディレクトリがすでに存在する必要があります。デフォルトの値を使用している場合、エージェントはディレクトリを作成しようとします。
log_level ログの詳細度のレベル。エージェントのyaml設定ファイルでこの設定を変更すると、動的に更新されます。ただし、環境変数とシステムプロパティは動的に更新されません。
エージェントは自身のログファイルを使用して、自身のロギングをアプリケーションのロギングとは別個に保存します。詳細であるために有効なオプションは次のとおりです:
log_limit_in_kbytes ログファイルのローテーション時の、キロバイト単位でのログファイルのサイズ。制限をなくすには、0
に設定します。
メッセージトレーサー message_tracer
セクションでメッセージトレーサーオプションを設定します。newrelic.config.message_tracer
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
segment_parameters.enabled メッセージプロパティをトレーサー属性に追加します。オフにするには、false
に設定します。
オープンテレメトリーSDK自動設定 次のセクションにあるオープンテレメトリー SDKの自動設定インストゥルメンテーションの設定:
enabled エージェントのOpenTelemetry SDK自動設定機能を有効にできます。 システムプロパティを介して設定できます。
-Dnewrelic.config.opentelemetry.sdk.autoconfigure.enabled = true
デフォルトはtrueです。
Securityエージェント New Relic Securityエージェントのインタラクティブアプリケーションセキュリティテスト (IAST)は、脆弱なペイロードを含む生成済みHTTPリクエストを再生することで、お使いのアプリケーションに悪用できる脆弱性がないかをテストします。
重要 実稼働ソフトウェアの脆弱性の露呈を避ける場合にのみ、非実稼働のデプロイメントでIASTを実行してください。
New Relic Securityエージェントの設定は、security
セクションで設定できます。newrelic.config.security
プリフィックス化システムプロパティを使用して、この設定を上書き できます。オプションには次のものが含まれます。
agent.enabled すべてのセキュリティ機能を完全に無効にするには、このフラグをfalseに設定します。このプロパティは、アプリケーション起動時に1回だけ読み込まれます。デフォルトはfalseです。
enabled New Relicにセキュリティデータを送信するかどうかを決定します。これが無効で、agent.enabledがtrueの場合、セキュリティモジュールは実行されますが、データは送信されません。デフォルトはfalseです。
モード New Relicセキュリティにはモード、IASTがあります。デフォルトはIASTです。IASTスキャンは侵襲性であるため、実稼働環境または実稼働データが処理される環境でこのモードを有効にしないでください。
validator_service_url タイプ
文字列
デフォルト
wss://csec.nr-data.net
New RelicセキュリティのSaaS接続のURL。これは、Securityエージェントがデータを送信するエンドポイントであり、APM Javaエージェント用に設定した環境と一致する必要があります。
米国の実稼働環境:wss://csec.nr-data.net
detection.rci.enabled RCIセキュリティイベント検出を有効にします。デフォルトはtrueです。
detection.rxss.enabled RXSSセキュリティイベント検出を有効にします。デフォルトはtrueです。
detection.deserialization.enabled 逆シリアル化セキュリティイベント検出を有効にします。デフォルトはtrueです。
低速トランザクションの検出 Javaエージェントバージョン8.7.0
以降、エージェントはSlowTransaction
イベント経由で低速トランザクションを検出できるようになりました。これらのイベントは、トランザクションの長さが特定のしきい値を超えた場合に記録されます。デフォルトのしきい値は600000ミリ秒(10分)です。
低速トランザクションの検出はslow_transactions
で設定され、newrelic.config.slow_transactions
プリフィックス化システムプロパティを使用して、上書き できます。オプションには次のものが含まれます。
enabled 低速トランザクション検出の有効化/無効化に使用されます。
閾値 SlowTransaction
イベントが報告されるまでの、トランザクションの所要時間をミリ秒単位で決定します。
evaluate_completed_transaction これをtrueに設定すると、 トランザクションの完了時に、定義された閾値を超えていないかどうかがすべてのトランザクションでチェックされます。 多数のトランザクションが閾値を超えると、SlowTransactionイベントごとにスタックトレースが送信されるため、計算コストが高くなる可能性があることに注意してください。
スパンイベント スパンイベント はディストリビューティッド(分散)トレーシング に関してレポートされます。スパンイベントをレポートするには、ディストリビューティッド(分散)トレーシングを有効にする必要があります。
span_events
セクションでスパンイベントを設定します。newrelic.config.span_events
プリフィックス化システムプロパティを使用して、この設定を上書き できます。オプションには次のものが含まれます。
enabled スパンイベントのレポートの有効化/無効化に使用します。
attributes.enabled この設定は、スパンイベントのすべての属性をオンまたはオフにするのに使用できます。ルートレベルでattributes.enabled
がfalse
である場合は、このプロパティ (span_events.attributes.enabled
) の設定にかかわらず、属性がスパンイベントに送られることはありません。
attributes.include 属性がスパンイベントに関して有効になっている場合は、このリストにあるすべての属性キーがspan_events
でNew Relicに送信されます。詳しくはエージェント属性ルール を参照してください。
attributes.exclude このリストにある属性キーのいずれも、スパンイベントでNew Relicに送信されることはありません。詳しくはエージェント属性ルール を参照してください。
例外の除去 除外例外オプションはstrip_exception_messages
セクションで設定します。newrelic.config.strip_exception_messages
プリフィックス化システムプロパティを使用して、この設定を上書き できます。Java例外メッセージをNew Relicにレポートするかどうかを制御するには、この設定を有効にします。
enabled デフォルトでは、これはfalse
に設定されます。つまり、エージェントはすべての例外からのメッセージをNew Relicコレクター に送信します。
これをtrue
に設定すると、誤って機密情報を取得しないようにするため、エージェントは例外からメッセージを除去します。 高セキュリティモード を有効にすると、これは自動的にtrue
に設定されます。enabled
をtrue
に設定するが、エージェントで特定の例外からメッセージを取得したい場合、例外を許可リスト に追加します。ホワイトリスト(非推奨) 重要 この設定はエージェントバージョン5.10.0では非推奨となっており、将来のエージェントバージョンでは削除されます。代わりに、allowed_classes
を使用します。
enabled
をtrue
に設定するが、エージェントで特定の例外のメッセージを取得したい場合、各例外をカンマで区切ってwhitelist
に追加します。
allowed_classes enabled
をtrue
に設定するが、エージェントで特定の例外のメッセージを取得したい場合、各例外をカンマで区切ってallowed_classes
に追加します。
スレッドプロファイラー スレッドプロファイラーオプションはthread_profiler
セクションで設定します。newrelic.config.thread_profiler
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
スレッドプロファイラーは、実行時に、アプリケーションのスレッドでのウォールクロックタイムやCPU時間、メソッド呼び出し数を測定します。
Transactionイベント トランザクションイベントオプションはtransaction_events
セクションで設定します。newrelic.config.transaction_events
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
トランザクションイベントデータは、UIでヒストグラムとパーセンタイルを表示するために使用されます。
重要 以前は、このセクションはanalytics_events
と呼ばれていました。設定ファイルで現在もanalytics_events
を使用している場合、エージェントを更新してtransaction_events
を使用します。
max_samples_stored 60秒ごとにレポートされた、サンプリングされたトランザクションイベントの最大数。
重要 その他の設定と異なり、custom_request_headers
はペアにする必要があり、newrelic.yml
ファイルで設定する必要があります。Java仮想マシン引数(システムプロパティ)や環境変数で上書きすることはできません。
ペアリングされたキーheader_name
とオプションのheader_alias
のマップのリスト。トランザクション属性として追加するカスタムHTTPリクエストヘッダーを1つ以上選択します。
複数のヘッダー設定を一覧表示できます。
header_name : "X-Custom-Header-1"
header_name : "X-Custom-Header-2"
header_alias : "CustomHeader2alias"
最初のマップセットで、X-Custom-Header-1
は、リクエストオブジェクトから対応する値のヘッダー名としてエージェントにより取得されレポートされます。header_name
は、New Relicに送信される属性の名前ともなります。
第二のマップセットで、リクエストヘッダーはX-Custom-Header-2
ですが、CustomHeader2alias
はNew Relicに送信される名前です。
attributes.enabled この設定を使用して、トランザクションイベントのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabled
がfalse
である場合は、このプロパティがtransaction_events
で設定されているかにかかわらず、属性がトランザクションイベントに送られることはありません。
attributes.include 属性がトランザクションイベントについて有効になっている場合、このリストにあるすべての属性キーが、トランザクションイベントでNew Relicに送信されます。詳しくはエージェント属性ルール を参照してください。
attributes.exclude このリストにある属性キーのいずれも、トランザクションイベントでNew Relicに送信されることはありません。詳しくはエージェント属性ルール を参照してください。
トランザクションセグメント トランザクションセグメントオプションはtransaction_segments
セクションで設定します。newrelic.config.transaction_segments
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
トランザクションセグメントは、個別の作業単位(一般的にはメソッド呼び出し)を表し、トランザクショントレース 内に表示されます。
attributes.enabled この設定を使用して、トランザクションセグメントのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabled
がfalse
である場合は、このプロパティ (transaction_segments.attributes.enabled
) が設定されているかにかかわらず、属性がトランザクションセグメントに送信されることはありません。
attributes.include 属性がトランザクションセグメントについて有効になっている場合、このリストにあるすべての属性キーが、トランザクションセグメントでNew Relicに送信されます。詳しくはエージェント属性ルール を参照してください。
attributes.exclude このリストにある属性キーのいずれも、トランザクションセグメントでNew Relicに送信されることはありません。詳しくはエージェント属性ルール を参照してください。
トランザクショントレーサー トランザクショントレーサーオプションはtransaction_tracer
セクションで設定します。newrelic.config.transaction_tracer
プリフィックス化システムプロパティを使用して、この設定を上書き できます。
トランザクショントレーシング は、スロートランザクションについての深い情報を捕捉し、New Relicサービスに送信します。トランザクションには、発効されたクエリステートメントを含む、トランザクションの正確な呼び出しの順序が含まれます。
重要 トランザクション名の末尾に角括弧[suffix]
を使わないでください。New Relicは名前から自動的に角括弧を除去します。代わりに、必要に応じて丸括弧(suffix)
、またはその他の記号を使ってください。
enabled トランザクショントレーサーは、デフォルトで有効になっています。オフにするには、false
に設定します。
explain_threshold スロークエリとEXPLAIN
プラン(サポートされている場合 )の捕捉の上限となる、クエリ実行時間の秒単位の閾値。record_sql
がraw
またはobfuscated
に設定されている場合にのみ、スロークエリに表示されます。explain_enabled
がtrue
に設定されている場合にのみ、EXPLAIN
プランに表示されます。
insert_sql_max_length SQLクエリ設定の文字制限。膨大な情報を含む遅いSQLクエリが多数ある場合、パフォーマンスやNew Relicでのデータ表示の速度に悪影響が及ぶ場合があります。情報とパフォーマンスの適切なバランスが見つかるまで、値を徐々に上げます。
log_sql New Relicへのアップロードではなく、クエリのエージェントログファイルへのロギングを有効にするには、true
に設定します。record_sql
モードを使用して、クエリのロギングを行います。
record_sql トランザクショントレーサーがオンの場合、クエリステートメントをオプションで記録できます。レコーダーには次の3つのモードがあります:
off
:クエリを送信しません。raw
:クエリステートメントを元の形式で送信します。obfuscated
:数字と文字列リテラルを除去します。stack_based_naming(Play 2.x+のみ) タイプ
ブール値
デフォルト
false
Javaエージェントのバージョン3.12.1までは、true
に変更された場合に、デフォルトでfalse
に変更されました。
このオプションはPlay 2.x+専用です。Play/Scalaインストゥルメンテーションは、Thread.getStackTrace()
を使用してトレーサーのネーミングを改善できますが、その代わりにオーバーヘッドが増加します。
stack_trace_threshold SQL呼び出しからスタックトレースを収集するための閾値(秒単位)を定義します。SQLステートメントがこの閾値を超えると、エージェントが現在のスタックトレースを取得します。これは、長いSQL呼び出しの発信元を特定するのに役立ちます。
top_n この設定を使用して、さまざまなトランザクショントレースを制御します。top_n
は、トレースを作成する一意のスロートランザクションの数を表す整数です。
トランザクショントレースが、アプリで実際に最も遅いトランザクションを正確に反映するようにするには、この値をlower します。
より広範なトランザクションの配列をサンプリングする場合は、値をhigher します。
値0
の場合、最も遅いトランザクションonly がトレースされることになります。これは最適ではないと考えられていますが、1つや2つのトランザクションが常に最も遅い場合があり、同じトランザクションのトレースを繰り返し見ても、おそらくあまり意味がないと思われます。
同じトランザクションが頻繁に最も遅い場合、top_n
設定により、Javaエージェントで(その期間で)最も遅いn
個のトランザクションのサンプリングを行えます。これにより、アプリケーションの知見の多様性と個数が増えます。
transaction_threshold トランザクションのトレースをいつ行えるかを決定するのに使用する時間閾値。トランザクションのレスポンスタイムがこの閾値を超えると、トランザクショントレース が記録され、New Relicに送信されます。
デフォルトはapdex_f
(デフォルト)です。これにより、閾値は「不満」 Apdex レベル(apdex_t
値の4倍)に設定されます。フロート値を秒数で入力して、特定の時間閾値を設定することもできます。
slow_query_whitelist(非推奨) 重要 この設定はエージェントバージョン5.10.0では非推奨となっており、将来のエージェントバージョンでは削除されます。代わりに、collect_slow_queries_from
を使用します。
デフォルトでは、高セキュリティモード では、エージェントはスロークエリ を収集できません。高セキュリティが有効になっていても、DataStaxドライバからCassandraクエリを収集するには、このオプションを有効にします。高セキュリティを使用しない場合、エージェントはスロークエリを自動的に収集します。
DataStaxドライバ2.1.2の場合、このルールを許可リストに追加します。
'com.newrelic.instrumentation.cassandra-datastax-2.1.2'
DataStaxドライバ3.0.0の場合、このルールを許可リストに追加します。
'com.newrelic.instrumentation.cassandra-datastax-3.0.0'
collect_slow_queries_from デフォルトでは、高セキュリティモード では、エージェントはスロークエリ を収集できません。高セキュリティが有効になっていても、DataStaxドライバからCassandraクエリを収集するには、このオプションを有効にします。高セキュリティを使用しない場合、エージェントはスロークエリを自動的に収集します。
DataStaxドライバ2.1.2の場合、このルールを許可リストに追加します。
collect_slow_queries_from :
'com.newrelic.instrumentation.cassandra-datastax-2.1.2'
DataStaxドライバ3.0.0の場合、このルールを許可リストに追加します。
collect_slow_queries_from :
'com.newrelic.instrumentation.cassandra-datastax-3.0.0'
attributes.enabled この設定を使用して、トランザクショントレースのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabled
がfalse
である場合は、このプロパティ (transaction_tracer.attributes.enabled
) が設定されているかにかかわらず、属性がトランザクショントレースに送信されることはありません。
attributes.include 属性がトランザクショントレースについて有効になっている場合、このリストにあるすべての属性キーが、トランザクショントレースでNew Relicに送信されます。詳しくはエージェント属性ルール を参照してください。
attributes.exclude このリストにある属性キーのいずれも、トランザクショントレースでNew Relicに送信されることはありません。詳しくはエージェント属性ルール を参照してください。
token_limit トランザクションごとに作成可能なトークンの数を制限します。この値を増やすと、エージェントが使用するメモリの量とNew Relicに送信されるデータの量が増えるため、パフォーマンスに影響が生じる場合があります。
segment_limit トランザクションごとに作成可能なセグメントの数を制限します。この値を増やすと、エージェントが使用するメモリの量とNew Relicに送信されるデータの量が増えるため、パフォーマンスに影響が生じる場合があります。