New Relic 属性 は、イベントやトランザクションのプロパティを決定する情報を含むキー・バリュー・ペアです。これらのキーバリューペアは、アプリケーションに対する洞察を深めたり、 がデータを照会する際にデータに注釈を付けたりするのに役立ちます 。また、 ユーザー情報を New Relic に自動的に転送することもできます。
デフォルト属性と カスタム 属性の両方が表示されます トランザクション追跡、分散追跡、およびエラー分析。 ダッシュボード の APM イベント と ブラウザ イベント。 これらの各宛先に送信される属性を正確にカスタマイズできます。
このドキュメントでは、Javaエージェントの属性について説明し、属性を有効または無効にする方法を詳細に説明しています。また、エージェントが デスティネーション のためにどの属性を含めるか、または除外するかを決定するために従うルールについても説明しています。
ヒント
これらの属性設定は、Javaエージェントのバージョン3.7.0以降に適用されます。それ以前のバージョンのエージェントを使用している場合は、 レガシー属性設定の更新 を参照してください。
Java特有の属性
デフォルトのAPM属性 に加えて、Javaエージェントは以下のソースから属性を収集します。
Webリクエストの応答ステータスコード。この属性のキーはhttpResponseCode
です。
各デスティネーションのデフォルト設定は
- トランザクションのトレースEnabled
- エラー分析。有効
- APMのイベント有効
- ブラウザのイベント。使用不可
Web要求に存在する場合の応答ステータスメッセージ。この属性のキーはhttpResponseMessage
です。
各デスティネーションのデフォルト設定は
- トランザクションのトレースEnabled
- エラー分析。有効
- APMのイベント有効
- ブラウザのイベント。使用不可
スレッドの名前。この属性のキーはjvm.thread_name
です。
各デスティネーションのデフォルト設定は
- トランザクションのトレースEnabled
- エラー分析。有効
- APMのイベント。使用不可
- ブラウザのイベント使用不可
ロックされたスレッドの名前。この属性のキーはjvm.lock_thread_name
です。
各デスティネーションのデフォルト設定は
- トランザクションのトレース。利用できません
- エラー分析。有効
- APMのイベントです。利用不可
- ブラウザのイベント使用不可
NewRelic.addCustomParameter(...) Java エージェント API の呼び出しによって追加される属性です。この属性のキーとなる名前は、このメソッドを呼び出す際に指定した内容によって異なります。
各デスティネーションのデフォルト設定は
トランザクションのトレースEnabled
エラー分析。有効
APMのイベント。使用不可
ブラウザのイベント。使用不可
重要
カスタム属性を作成する前に、New Relic の NRQL で使用される 予約語のリストを確認してください 。そうしないと、予期しない結果になる可能性があります。
JavaエージェントAPIのNoticeError()
呼び出しに追加された属性。この属性のキー名は、メソッドを呼び出すときに指定する内容によって異なります。
各デスティネーションのデフォルト設定は
- トランザクションのトレース。利用できません
- エラー分析。有効
- APMのイベントです。利用不可
- ブラウザのイベント使用不可
Javaエージェントでは、レスポンスヘッダやリクエストヘッダを属性として取り込むことができます。
HTTPリクエストヘッダを取得します。
request.headers.referer
request.headers.accept
request.headers.contentLength
request.headers.host
request.headers.userAgent
キャプチャされた応答ヘッダー: response.headers.contentType
デフォルトでは、エージェントは他の要求ヘッダーをキャプチャしません。また、 newrelic.yml
のattributes.include
スタンザ内にそれらを含めることによって、属性としてキャプチャされる追加の要求ヘッダーを指定することはできません。
カスタムか標準かに関係なく、追加のリクエストヘッダーをキャプチャする場合は、 JavaエージェントAPIのaddCustomParameter()
メソッドを使用します。
各デスティネーションのデフォルト設定は
トランザクションのトレースEnabled
エラー分析。有効
APMのイベント有効
ブラウザのイベント。使用不可
Javaエージェントは、デフォルトでrequest.method
属性の一部としてリクエストメソッドGET、POST、およびPUTをキャプチャします。
トランザクションからのリクエストパラメータは、デフォルトではキャプチャされません。 addCustomParameter()
JavaエージェントAPIを使用して、リクエストパラメータをキャプチャします。
これらの属性のキーはrequest.parameters.*
です。機密情報の取得が懸念される場合は、次のオプションを使用できます。
attributes.include
でワイルドカードを使用することは避けてください。代わりに、キャプチャする各フィールドを明示的に指定してください。attributes.include
でワイルドカードを使用する場合は、 attributes.exclude
を使用して機密フィールドを明示的に除外します。
ユーザー属性の収集
APMのJavaエージェントを使用すると、構成ファイルを編集することにより、ユーザー情報を自動的に収集できます。その後、カスタム属性を手動で作成しなくても、ユーザー情報に対してNRQLクエリを実行できます。この機能は、NewRelicのJavaエージェント3.10.0以降で使用できます。
Java agent 3.10.0以上でユーザー属性を収集する場合。
newrelic.yml
を開きます。通常はnewrelic.jar
と同じディレクトリにあります。
class_transformer
スタンザで、 com.newrelic.instrumentation.servlet-user
を編集してenabled
をtrue
に設定します。
# This instrumentation reports the name of the user principal returned from
# HttpServletRequest.getUserPrincipal() when servlets and filters are invoked.
com.newrelic.instrumentation.servlet-user:
Webサーバーを再起動します。
属性の設定。有効にする、含める、除外する
JavaエージェントがNew Relicに報告する属性の種類、または特定の属性を設定することができます。これは、セキュリティ上の理由から、New Relic に報告してほしくない機密性の高い属性がある場合によく行われます。どのような設定が他の設定よりも優先されるかについては、 属性設定ルール を参照してください。
アトリビュートの設定オプション
アトリビュートルール
Javaエージェントは、これらのルールに従って、デスティネーションに含める属性や除外する属性を決定します。
メインのattributes.enabled
プロパティをfalse
に設定すると、エージェントは属性をまったく報告しません。
エージェントの設定。
attributes.enabled: false
attributes.include: request.parameters.*
error_collector.attributes.enabled: true
入力キー。
foo
bar
request.parameters.foo
request.parameters.bar
エージェントの出力です。
トランザクションの痕跡。属性なし
エラーアナリティクス。属性がありません
APMのイベントです。属性なし
ブラウザのイベントです。属性なし
宛先の有効をfalse
に設定すると、エージェントは包含/除外設定を無視し、その宛先の属性を報告しません。
エージェントの設定。
transaction_tracer.attributes.enabled: false
attributes.include: one, two*
transaction_tracer.attributes.include: three, four
入力キー。
one
two
three
four
エージェントの出力です。
トランザクションの痕跡。属性なし
エラー分析: one
、 two
APMイベント: one
、 two
ブラウザのイベントです。属性なし
.exclude
プロパティは.include
プロパティを上書きします。
エージェントの設定。
attributes.enabled: true
attributes.include: foo, myCustomAtt
attributes.exclude: password, myCustomAtt
入力キー。
foo
myCustomAtt
password
エージェントの出力です。
トランザクショントレース: foo
エラー分析: foo
APMイベント: foo
ブラウザイベント: foo
複数のincludeまたはexclude属性が同じキーに影響を与える場合は、最も具体的な設定が優先されます。
エージェントの設定。
attributes.enabled: true
attributes.include: foo, myCustomAtt
attributes.exclude: password, myCustomAtt
browser_monitoring.attributes.enabled: true
入力キー。
food
food.bread
food.fruit.banana
food.fruit.apple
エージェントの出力です。
トランザクショントレース: food.fruit.apple
エラー分析: food.fruit.banana
、 food.fruit.apple
APMイベント: food.fruit.banana
、 food.fruit.apple
ブラウザイベント: food.fruit.banana
、 food.fruit.apple
.include
および.exclude
プロパティで指定されたキーでは、大文字と小文字が区別されます。
エージェントの設定。
attributes.enabled: true
attributes.exclude: password, PaSsWoRd
入力キー。
password
Password
PASSWORD
PaSsWoRd
PassWORD
エージェントの出力です。
トランザクショントレース: Password
、 PASSWORD
、 PassWORD
エラー分析: Password
、 PASSWORD
、 PassWORD
APMイベント: Password
、 PASSWORD
、 PassWORD
ブラウザイベント: Password
、 PASSWORD
、 PassWORD
キーの末尾にあるアスタリスク*
をワイルドカードとして使用できます。これは、同じプレフィックスを持つ属性のセットと一致します。
エージェントの設定。
attributes.enabled: true
attributes.include: custom*
attributes.exclude: request.parameters.*
入力キー。
custom
custom.key1
custom.key2
request.parameters.
request.parameters.foo
request.parameters.bar
エージェントの出力です。
トランザクショントレース: custom
、 custom.key1
、 custom.key2
エラー分析: custom
、 custom.key1
、 custom.key2
APMイベント: custom
、 custom.key1
、 custom.key2
ブラウザイベント: custom
、 custom.key1
、 custom.key2