New Relicソリューションにおいてデフォルトでは報告されないカスタムデータを報告させる代表的な方法として、カスタムアトリビュートとカスタムイベント の2つがあります。このドキュメントでは、カスタムアトリビュートを使用する場面を詳しく説明します。
New Relicソリューションによっては、カスタムデータをNew Relicに報告する 方法の1つとして、カスタムアトリビュート の使用があります。カスタムアトリビュートをデータに追加することで、ビジネスをより詳細にカスタマイズした分析を行うことができます。例えば、New Relicブラウザ監視の場合、カスタムアトリビュートを作成して、遅いリクエストまたは失敗したリクエストに関連付けられたユーザー名を追跡できます。
重要 カスタムアトリビュートは取り込みデータ量として算入される課金対象のデータです。
要件 カスタムアトリビュートは次のNew Relicソリューションで利用できます。
APM ブラウザのモニタリング モバイルのモニタリング インフラストラクチャのモニタリング 合成モニター 各オプションについては、以下でさらに詳しく説明します。
カスタムアトリビュートの作成と使用に関する推奨事項 New Relicでは、属性 は、それがアタッチされているイベント に関するメタデータを提供するキーと値のペアです。
カスタムアトリビュートを作成する一般的な目的は、名前、ID、電子メールなどのユーザー情報の取得です。これにより、運用データとビジネスデータの関連付けが可能になります。例えば、ユーザー情報があれば、サービスデスクやCRMのデータをNew Relicの運用データと連携させることができます。
ビジネスに関するその他のコンテキストとしては、以下のようなものが挙げられます。
顧客トークン 顧客市場セグメント 顧客価値分類 URIStemでは判別しにくいワークフロー制御値 ユーザー・製品・アカウントの権限に関するコンテキスト 運用に関するコンテキストとしては、以下のようなものが挙げられます。
使用された機能フラグ アクセスされたデータストア アクセスされたキャッシュ 検出されたものの無視されたエラー(障害の切り分け) カスタムアトリビュートを追加すると、New Relicでクエリを実行し、そのデータからカスタムチャートを作成できます。例えば、JavaエージェントAPI 使用してuserId属性をTransactionおよびTransactionErrorイベントに追加すると、次のようにその属性を使用してNRQLクエリを作成できます。
SELECT count ( * ) FROM TransactionError
WHERE userId = '1401961100' FACET dateOf ( timestamp ) , ` error.message `
APM:カスタムアトリビュートを記録する APMのカスタムアトリビュートを有効にして使用するには、APM エージェントの手順に従います。
Java Javaでは、カスタムアトリビュートの収集がデフォルトで有効になっています。XMLとJavaエージェント APIを使用してカスタムアトリビュートを収集できます。2つの方法を併用することも可能です。カスタムアトリビュートを収集するには、アプリケーションのクラスパスにNew Relic Java API jar が配置されている必要があります。
メソッド
How to do it
XMLで属性を指定する
XMLを使用すると、ソースコードを変更せずにカスタムアトリビュートを指定できます。カスタムアトリビュート用のXMLファイルは、論理的な区分ごとにグループ化して複数使用できます。
XMLを使ってJavaアプリ向けのカスタムアトリビュートを設定する方法:
New Relic Javaエージェントのドキュメントで、XMLファイル形式、メソッド・クラス、例 を確認してください。 New Relic Javaエージェント内のExtensionsディレクトリに、単一のXMLファイル を作成します。 XMLファイルを直接編集して 、New Relicに監視させたいメソッドを設定します。New Relic UI を使用してXML計装ファイルを設定します。その際、newrelic.yml のcommon:ブロックに追加の設定が必要になる場合があります。詳細については、計装オプション のReport custom attributes を参照してください。エージェントのAPIを呼び出す
Example 1: Adding custom attributes to transactions
エージェントのAPIを使用してカスタムアトリビュートを収集するには、関連するメソッドを呼び出します。
属性を記録したいメソッドごとに、NewRelic.addCustomParameter(...)を呼び出します。
任意:attributes.include とattributes.exclude を使用することで、特定の属性を含めるか、除外するかを設定できます。
例えば、userIdという名前の変数を記録するには、親メソッドに次のコードを含めます。
NewRelic . addCustomParameter ( "userId" , userId ) ;
Example 2: Adding custom attributes to spans in distributed traces
エージェントのAPIを使用してカスタムアトリビュートを収集するには、関連するメソッドを呼び出します。
属性を記録する各スパン(実行中のメソッド)に対して、NewRelic.getAgent().getTracedMethod().addCustomAttribute(...)を呼び出します。
任意:span_events.attributes.include とspan_events.attributes.exclude を使用することで、特定の属性を含めるか、除外するかを設定できます。
例えば、現在のスパンにuserIdという名前の変数を記録するには、該当するメソッドに次のコードを含めます。
NewRelic . getAgent ( ) . getTracedMethod ( ) . addCustomAttribute ( "userId" , userId ) ;
ユーザー属性を収集する
Javaエージェントにはユーザー属性を有効にし 、カスタムアトリビュートとしてHttpServletRequest.getUserPrincipal()からユーザー情報を収集するための仕組みが標準で搭載されています。
.NET .NETでは、カスタムアトリビュートの収集がデフォルトで有効になっています。カスタムアトリビュートを収集するには、関連するAPIメソッドを呼び出します。
属性を記録したいメソッドごとに、AddCustomAttribute を呼び出します。
任意:include およびexclude 設定オプションを使用すると、属性を含めるか、除外するかを設定できます。
例えば、クーポンコード(文字列)と商品IDコード(数値)の属性を記録するには、親メソッドに次のコードを含めます。
IAgent agent = NewRelic . Api . Agent . NewRelic . GetAgent ( ) ;
ITransaction transaction = agent . CurrentTransaction ;
. AddCustomAttribute ( "Discount Code" , "Summer Super Sale" )
. AddCustomAttribute ( "Item Code" , 31456 ) ;
Node.js Node.jsでは、カスタムアトリビュートコレクションがデフォルトで有効になっています。カスタムアトリビュートを収集するには、関連するAPIメソッドを呼び出します。
PHP PHPでは、カスタムアトリビュートの収集がデフォルトで有効になっています。カスタムアトリビュートを収集するには、属性を記録するメソッドごとに関連するAPIメソッドを呼び出します。
Python Pythonでは、カスタムアトリビュートの収集がデフォルトで有効になっています。カスタムアトリビュートを収集するには、属性を記録するメソッドごとにadd_custom_attribute を呼び出します。
例えば、user_idという名前の変数を記録するには、親メソッドに次のコードを含めます。
newrelic . agent . add_custom_attribute ( 'user_id' , user_id )
Ruby Rubyでは、カスタムアトリビュートの収集がデフォルトで有効になっています。カスタムアトリビュートを収集するには、add_custom_attributes メソッドを呼び出します。例えば、@user_idという名前の変数を記録するには、親メソッドに次のコードを含めます。
:: NewRelic :: Agent . add_custom_attributes ( { user_id : @user . id } )
ブラウザ監視:カスタムアトリビュートを記録する Browserエージェントは、APMからブラウザ監視に属性を転送する か、JavaScriptを介してカスタムアトリビュートを指定する ことにより、ページ読み込み全体でブラウザイベントに関連付けられた追加の詳細を指定するAPIを提供します。APMエージェントから送信された値はエンコードされ、Browserエージェントによってブラウザ属性に挿入されます。
インフラストラクチャ監視:カスタムアトリビュートを記録する インフラストラクチャ監視 を使用すると、infrastructureエージェントからのデータに注釈を付けるために使用されるカスタムアトリビュート を作成できます。このメタデータを使用すると、エンティティをフィルタリングしたり、結果をグループ化したり、データに注釈を付けたりすることができます。
モバイル監視:カスタムアトリビュートを記録する モバイルエージェントには、カスタムアトリビュートを記録するためのAPI呼び出しが用意されています。
Syntheticモニター:カスタムアトリビュートを記録する Syntheticモニターのカスタムアトリビュート を参照してください。