New Relicソリューションによってデフォルトで報告されないカスタムデータを報告する場合、最も一般的なソリューションの2つは、カスタム属性とカスタムイベント です。このドキュメントでは、カスタム属性を使用する理由について詳しく説明します。
一部のNewRelicソリューションでは、カスタムデータをNew Relicにレポート する1つの方法は、カスタム属性 を使用することです。データにカスタム属性を追加することで、ビジネスのより詳細でカスタマイズされた分析を行うことができます。たとえば、New Relicブラウザの監視では、カスタム属性を作成して、低速または失敗したリクエストに関連付けられたユーザー名を追跡できます。
重要 カスタム属性は、GB インジェストにカウントされ、課金対象のデータです。
要件 カスタム属性は、これらのNew Relicソリューションで利用できます。
APM ブラウザのモニタリング モバイルのモニタリング インフラストラクチャのモニタリング 合成モニター これらのオプションについては、以下で詳しく説明します。
カスタム属性を作成および使用するための推奨事項 New Relicでは、属性 は、関連付けられているイベント に関するメタデータを提供するキーと値のペアです。
カスタム属性を作成する際の一般的なパターンは、名前、ID、電子メールなどのユーザー情報を取得することです。これにより、運用データとビジネスデータの間に関連付けを作成できます。たとえば、ユーザー情報がある場合は、サービスデスクとCRMデータをNewRelicの運用データと結び付けます。
他のタイプのビジネスコンテキストには、次のものが含まれる場合があります。
カスタマーズトークン お客様の市場セグメント 顧客価値の分類 URIStemで明らかでないワークフロー制御値 ユーザー/製品/アカウントの権限のコンテキスト オペレーショナル・コンテキストには、以下のようなものがあります。
どの機能フラグを使用したか どのデータストアにアクセスしたか どのキャッシュにアクセスしたか どのようなエラーが検出され、無視されたか(フォールト・パーティショニング) カスタム属性を追加すると、New Relicでクエリを実行し、そのデータからカスタムチャートを作成できます。たとえば、 JavaエージェントAPI を使用してTransaction
およびTransactionError
イベントにuserId
属性を追加した場合、次のように、その属性を使用して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 } )
ブラウザモニタリング。カスタム属性の記録 ブラウザエージェントは、ページビューやブラウザのインタラクションに関連する追加の詳細を指定するためのAPIを提供しています。APMからブラウザモニタリングに属性を転送する または、JavaScriptでカスタム属性を指定する のいずれかの方法で行います。APMエージェントから転送された値は、ブラウザエージェントによってエンコードされ、ブラウザの属性に注入されます。
インフラストラクチャのモニタリング。カスタム属性の記録 インフラストラクチャ監視を使用 すると、インフラストラクチャ エージェントからのデータに注釈を付けるために使用される カスタム属性 を作成できます。このメタデータを使用して、エンティティをフィルタリングし、結果をグループ化し、データに注釈を付けることができます。
モバイルモニタリング。カスタム属性の記録 モバイルエージェントには、カスタム属性を記録するためのAPIコールが含まれています。
合成モニター:カスタム属性を記録する 合成モニターのカスタム属性 を参照してください。