カスタムアトリビュートの収集

New Relic では、デフォルトおよびカスタムアトリビュートを収集し、それらを複数の宛先に送信できます。たとえば、応答の遅いリクエストや失敗したリクエストに関連するユーザー名を追跡するためのカスタムアトリビュートを作成できます。

APM 用属性の有効化

カスタムアトリビュートを作成する前に、New RelicのNRQL およびInsightsが使用する予約語のリストをご確認ください。確認を行わない場合、予期しない結果が発生する可能性があります。

New Relic APMおよびNew Relic Insightsのカスタムアトリビュートを有効化して使用するには、以下に記載するエージェントの手順に従ってください。

Go

Go エージェントでは、デフォルトでカスタムアトリビュートの収集が有効になっています。ただし、カスタムアトリビュートの収集は無効にできます。

Java

Java エージェントでは、デフォルトでカスタムアトリビュートの収集が有効になっています。XML および New Relic Java エージェントの API を使用して、カスタムアトリビュートを収集できます。この2つの方法は併用できます。

Javaカスタムアトリビュートの収集 コメント
XML

XMLでは、ソースコードを一切変更することなくカスタムアトリビュートを指定できます。特定の論理ファセットでグループ化されたカスタムアトリビュート用に複数のXMLファイルを作成できます。

XMLを使用して、Javaアプリ用にカスタムアトリビュートを設定するには:

  1. XML ファイルの形式、メソッド、クラス、およびその例に関するNew Relic Javaエージェントのドキュメントをご確認ください。
  2. New Relic Javaエージェント内のExtensionsディレクトリから、XMLファイルを1つ作成します。
  3. 直接XMLファイルを編集することで、New Relicで監視するメソッドを定義します。
  4. New Relic UIを使用して、XMLインストゥルメンテーションファイルを定義します。
JavaエージェントAPI

APIを使用してカスタムアトリビュートを収集するには、関連するメソッドを呼び出します。

  1. 属性を記録したい各メソッドに対して、addCustomParameterを呼び出します。
  2. オプション:特定の属性を追加または除外するには、attributes.includeattributes.excludeを使用します。

たとえば、userIdという名前の変数を記録するには、親メソッドにこのコードを含めます。

NewRelic.addCustomParameter("userId", userId);
ユーザー属性

Javaエージェントはユーザー属性を有効にする組み込みメカニズムも備えており、HttpServletRequest.getUserPrincipal()からユーザー情報をカスタムアトリビュートとして収集します。

.NET

.NET エージェントでは、デフォルトでカスタムアトリビュートの収集が有効になっています。カスタムアトリビュートを収集するには、関連するAPIメソッドを呼び出します:

  1. 属性を記録したい各メソッドに対して、AddCustomParameterを呼び出します。

    数字を記録するには(たとえば、min()max()histogram()など、数値に作用するInsight関数を使用する)、これを必ずSingleに変換するようにしてください。その他の数値は文字列に変換されます。

  2. オプション:属性の追加や除外には、includeexclude設定オプションを使用します。

たとえば、クーポンコード(文字列)とアイテムIDコード(Single型の数値)の属性を記録するには、親メソッドにこのコードを含めることができます:

NewRelic.Api.Agent.AddCustomParameter("Discount Code", "Summer Super Sale");
NewRelic.Api.Agent.AddCustomParameter("Item Code", (Single)31456);
Node.js

Node.jsエージェントではデフォルトでカスタムアトリビュートの収集が有効になっています。カスタムアトリビュートを収集するには、関連するAPIメソッドを呼び出します:

たとえば、クーポンコードとアイテム ID コードの属性を記録するには、親メソッドに次のコードを追加できます:

newrelic.addCustomAttributes({
  "Discount Code": "Summer Super Sale",
  "Item Code": 31456
});
PHP

PHP エージェントでは、デフォルトでカスタムアトリビュートの収集が有効になっています。カスタムアトリビュートを収集するには、属性を記録したい各メソッドに対して、関連するAPIメソッド(newrelic_add_custom_parameter)を呼び出します。

たとえば、$userIdという名前の変数を記録するには、親メソッドにこのコードを含めます:

newrelic_add_custom_parameter ('userID', $userId)
Python

Pythonエージェントでは、デフォルトでカスタムアトリビュートの収集が有効になっています。カスタムアトリビュートを収集するには、属性を記録したい各メソッドに対してadd_custom_parameterを呼び出します。

たとえば、user_idという名前の変数を記録するには、親メソッドにこのコードを含めます:

newrelic.agent.add_custom_parameter('user_id', user_id)
Ruby

Ruby エージェントでは、デフォルトでカスタムアトリビュートの収集が有効になっています。カスタムアトリビュートを収集するには、関連するAPIメソッドを呼び出します:

  • Rubyエージェントのバージョン3.12.0以降については、add_custom_attributesメソッドを使用してください。たとえば、@user_idという名前の変数を記録するには、親メソッドにこのコードを含めます:

    ::NewRelic::Agent.add_custom_attributes({ user_id: @user.id })
  • Rubyエージェントのバージョン3.11.2以前については、add_custom_parametersメソッドを使用してください。たとえば、@user_idという名前の変数を記録するには、親メソッドにこのコードを含めます:

    ::NewRelic::Agent.add_custom_parameters({ user_id: @user.id })

詳しくは、New Relic Universityの Adding Custom Attributes with the Ruby Agent APIチュートリアルを参照してください。もしくは、完全オンラインコースの APMによるカスタムデータに直接アクセスしてください。

APM からのカスタムアトリビュートの記録

アプリケーションでウェブトランザクションを処理するコードであればどこでもAPIを呼び出してカスタムアトリビュートを定義できます。詳細については、お使いのエージェントの API ドキュメントをご覧ください。

ブラウザからのカスタムアトリビュートの記録

New Relic Browser エージェントには、APM から Browser に属性を転送するかJavaScript を使用してカスタム属性を指定することにより、ページビューやブラウザとのインタラクションに関する追加情報を指定できる API があります。APM エージェントから転送される値はエンコードされ、New Relic Browser JavaScript エージェントによって Browser 属性に挿入されます。

Infrastructure からのカスタム属性の記録

New Relic Infrastructure では、Infrastructure エージェントのデータに注釈を付けるために使用するカスタムアトリビュートを作成できます。このメタデータを使用すると、フィルターセットを構築し、結果をグループ化し、Insights データに注釈を付けることができます。

その他のヘルプ

推奨する詳細情報: