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 のカスタム属性を有効にして使用するには、次の手順に従います。 エージェント:
カスタム属性の収集は、Javaではデフォルトで有効になっています。カスタム属性の収集は、XML と Java エージェント API を使用して行うことができます。この2つの方法は、互いに併用することができます。
方法 | 設定方法 |
---|
XMLでの属性指定 | XMLは、ソースコードを変更することなく、カスタム属性を指定することができます。カスタム属性用に複数のXMLファイルを用意し、論理的なファセットでグループ化することができます。 XMLを使ってJavaアプリのカスタム属性を設定する。 - New Relic Java エージェントの XML ファイル形式、メソッドとクラス、例に関するドキュメントを確認してください 。
- New Relic Javaエージェント内の
Extensions ディレクトリから、単一のXMLファイルを作成します。 - XMLファイルを直接編集して、New Relicにモニターさせたいメソッドを定義します。
- NewRelicUIを使用してXMLインストルメンテーションファイルを定義します。これには、 newrelic.ymlの
common: ブロックに追加の設定が必要になる場合があります。詳細については、「 インストルメンテーションオプション」の「レポートカスタム属性」を参照してください。
|
エージェントのAPIを呼び出す | 例 1: トランザクションにカスタム属性を追加する エージェントのAPIを使用してカスタム属性を収集するには、関連するメソッドを呼び出します。 属性を記録するメソッドごとに、 NewRelic.addCustomParameter(...) を呼び出します。 オプション: attributes.include およびattributes.exclude で特定の属性を含めるか除外します。 たとえば、 userId という名前の変数を記録するには、次のコードを親メソッドに含めます。 NewRelic.addCustomParameter("userId", userId);
例2:分散型トレースのスパンにカスタム属性を追加する エージェントのAPIを使用してカスタム属性を収集するには、関連するメソッドを呼び出します。 属性を記録するスパン(現在実行中のメソッド)ごとに、 NewRelic.getAgent().getTracedMethod().addCustomAttribute(...) を呼び出します。 オプション: span_events.attributes.include およびspan_events.attributes.exclude で特定の属性を含めるか除外します。 たとえば、現在のスパンでuserId という名前の変数を記録するには、関連するメソッドに次のコードを含めます。 NewRelic.getAgent().getTracedMethod().addCustomAttribute("userId", userId);
|
ユーザー属性の収集 | Javaエージェントには、ユーザー属性を有効にし、カスタム属性としてHttpServletRequest.getUserPrincipal() からユーザー情報を収集するための組み込みメカニズムも含まれています。 |
カスタム属性の収集は、.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ではデフォルトで有効になっています。カスタム属性を収集するには、関連するAPIメソッドを呼び出します。
記録する属性ごとに、[ newrelic.addCustomAttribute
](/docs/apm/agents/nodejs-agent/api-guides/nodejs-agent-api/#add-custom-attribute.
1 回の呼び出しで複数の属性を記録するには、 newrelic.addCustomAttributes
を使用します。
例えば、クーポンコードとアイテムIDコードの属性を記録するには、これを親メソッドに含めます。
newrelic.addCustomAttributes({
"Discount Code": "Summer Super Sale",
カスタム属性の収集は、PHPではデフォルトで有効になっています。カスタム属性を収集するには、属性を記録したい各メソッドの関連するAPIメソッドを呼び出します。
カスタム属性収集は、Python ではデフォルトで有効になっています。カスタム属性を収集するには、属性を記録するメソッドごとにadd_custom_attribute
を呼び出します。
たとえば、 user_id
という名前の変数を記録するには、次のコードを親メソッドに含めます。
newrelic.agent.add_custom_attribute('user_id', user_id)
Ruby では、カスタム属性の収集がデフォルトで有効になっています。カスタム属性を収集するには、 add_custom_attributes
メソッドを呼び出します。たとえば、 @user_id
という名前の変数を記録するには、次のコードを親メソッドに含めます。
::NewRelic::Agent.add_custom_attributes({ user_id: @user.id })
ブラウザモニタリング。カスタム属性の記録
ブラウザエージェントは、ページビューやブラウザのインタラクションに関連する追加の詳細を指定するためのAPIを提供しています。APMからブラウザモニタリングに属性を転送する または、JavaScriptでカスタム属性を指定する のいずれかの方法で行います。APMエージェントから転送された値は、ブラウザエージェントによってエンコードされ、ブラウザの属性に注入されます。
インフラストラクチャのモニタリング。カスタム属性の記録
インフラストラクチャ監視を使用 すると、インフラストラクチャ エージェントからのデータに注釈を付けるために使用される カスタム属性 を作成できます。このメタデータを使用して、エンティティをフィルタリングし、結果をグループ化し、データに注釈を付けることができます。
モバイルモニタリング。カスタム属性の記録
モバイルエージェントには、カスタム属性を記録するためのAPIコールが含まれています。
合成モニター:カスタム属性を記録する
合成モニターのカスタム属性を参照してください。