APM があれば、カスタム イベントデータ をレポートすることができます。その後、New Relic で クエリ を実行し、データを可視化することができます。
データへの配慮 New Relic エージェントは、 イベントデータ を通常のハーベストサイクルの一部として、 リアルタイムストリーミング をサポートしているエージェントバージョンでは、5秒ごとに New Relic に送信します。
たくさんのイベントを送信すると、エージェントのメモリオーバーヘッドが大きくなります。New Relic では、5 秒ごとに 833 個のカスタムイベントを送信するという上限を設けています。また、サイズが1MB(10^6バイト)を超える投稿は、カスタムイベントの上限に関わらず記録されません。
また、 Event API を使用してカスタムイベントを送信することもできます(APM は必要ありません)。ただし、エージェントAPIを使って送信されたカスタムイベントは、 ハイセキュリティモード とは互換性がありませんのでご注意ください。
カスタムイベントと属性の記録 独自のカスタムAPMイベントと 属性を追加することができます。 その属性を使って、 クエリやチャートを作成することができます。 。これは、 カスタムデータをレポートするためのいくつかの方法の一つです。 。
カスタムイベントを記録するには、お使いの New Relic 言語エージェントの手順に従ってください。APM イベントにカスタム属性を追加するには、まず APM エージェントでカスタム属性を有効にしてから、属性を記録するための API 呼び出しを行う必要があります。エージェント固有のカスタム属性の手順に従ってください。
独自のカスタムイベントや属性を作成する場合は、以下のデータ要件に従ってください。
C SDK C SDKが監視するアプリにカスタムイベントを追加するには、トランザクションを開始し、 newrelic_create_custom_event
と newrelic_record_custom_event
の関数を使用します。詳細については、 Guide to using the C SDK API を参照してください。その後、 カスタム属性 を C SDK アプリに追加することができます。
Java カスタムイベントの収集は、Javaエージェントのバージョン3.13.0以降ではデフォルトで有効になっています。カスタムイベントを送信するには、 recordCustomEvent
を呼び出してください。例えば、以下のようになります。
Map<String, Object> eventAttributes = new HashMap<String, Object>();
NewRelic.getAgent().getInsights().recordCustomEvent("MyCustomEvent ", eventAttributes );
最初の引数は、イベントタイプの名前を定義し、2番目の引数は、カスタムイベントの属性を持つマップです。イベントの属性は文字列または数字でなければなりません。作成するイベントタイプ名の数を制限し、これらの名前を動的に生成しないようにしてください。イベントタイプ名の制限については、 の制限と制限された文字 と NRQL の予約語 についてのドキュメントを参照してください。
Javaエージェントが記録するイベントの最大数は、 newrelic.yml
の設定パラメータで変更できます。
1分間に記録するイベントの最大数を整数で指定します。例えば、デフォルトの10000イベントより少ない数を送信したい場合などです。
カスタムイベントを完全に無効にするには、以下を newrelic.yml
に追加してください。
そして、Javaアプリのために、 カスタム属性 を追加することができます。
Javaエージェントのバージョンが4.1.0より前の場合は、以下のYAML設定を使用してください。
custom_insights_events.enabled: true
custom_insights_events.max_samples_stored: 5000
.NET カスタムイベントの収集は、.NETエージェントのバージョン4.6.29.0以降ではデフォルトで有効になっています。カスタムイベントを送信するには、単に RecordCustomEvent()
を呼び出してください。例えば、以下のようになります。
var eventAttributes = new Dictionary<String, Object>();
NewRelic.Api.Agent.NewRelic.RecordCustomEvent('MyCustomEvent', eventAttributes);
最初の引数にはイベントタイプの名前を定義し、2番目の引数にはカスタムイベントの属性を持つIEnumerableを指定します。作成するイベントタイプ名の数を制限し、これらの名前を動的に生成しないようにしてください。イベントタイプ名の制限については、 の制限と制限された文字 と NRQL reserved words についてのドキュメントを参照してください。
そうすれば、.NETアプリに カスタム属性 を追加することができます。
customEvents.enabled
を false
in newrelic.config
に設定することで、カスタムイベントを完全にオフにすることができます。
Node.js カスタムイベントの収集は、Node.jsエージェントのバージョン1.15.0以降ではデフォルトで有効になっています。カスタムイベントを送信するには、関連するAPIを呼び出すだけです。例えば、以下のようになります。
recordCustomEvent(eventType , attributes )
通常、特定の継続時間に関連付けられたイベントベースのメトリックを記録するには、recordCustomEventを使用します。eventTypeは255文字以下の英数字の文字列でなければなりません。属性は、キーと値のペアのオブジェクトでなければなりません。キーは255文字以下で、値は文字列、数値、またはブール値でなければなりません。イベントタイプ名の制限については、 の制限と制限文字についてのドキュメントを参照してください。 と NRQL の予約語 .
そうすれば、Node.jsアプリに カスタム属性 を追加することができます。
カスタムイベントを完全に無効にするには、 custom_insights_events.enabled: false
を newrelic.js
に追加してください。
PHP カスタムイベントの収集は、PHPエージェントのバージョン4.18以上でデフォルトで有効になります。カスタムイベントを送信するには、関連するAPI関数を呼び出すだけです。例えば、以下のようになります。
newrelic_record_custom_event("WidgetSale ", array("color "=>"red ", "weight "=>12.5 ));
最初の引数はイベントタイプの名前を定義し、2番目の引数はカスタムイベントの属性を持つ配列です。作成するユニークなイベントタイプ名の数を確実に制限し、これらの名前を動的に生成しないようにしてください。イベントタイプ名の制限については、 の制限と制限された文字 と NRQL の予約語 についてのドキュメントを参照してください。
初期設定では、1分間に記録されるカスタムイベントの最大数は10,000です。この設定は変更できません。
そして、PHPアプリのために、 カスタム属性 を追加することができます。
カスタムイベントを完全に無効にするには、 newrelic.custom_insights_events.enabled = false
を newrelic.ini
に追加し、エージェントを再起動してください。
Python カスタムイベントの収集は、Pythonエージェントのバージョン2.60.0.46以上でデフォルトで有効になります。カスタムイベントを送信するには、関連するAPIを呼び出すだけです。例えば、以下のようになります。
newrelic.agent.record_custom_event (event_type, params, application=None)
event_type
は、カスタムイベントの名前(またはタイプ)を定義します。カスタムイベントの属性は、辞書として params
キーワード引数で渡す必要があります。作成するユニークなイベントタイプ名の数を確実に制限し、これらの名前を動的に生成しないようにしてください。 event_type
と params
の制限と制約については、 の制限と制約文字 と の予約語についてのドキュメントを参照してください。
監視対象のウェブリクエストやバックグラウンドタスクのコンテキスト外で呼び出された場合、 application
キーワード引数が提供され、例外を記録する必要のあるアプリケーションに対応するアプリケーションオブジェクトが提供されない限り、呼び出しは無視されます。適切なアプリケーション・オブジェクトは、 newrelic.agent.application()
関数を使って取得できます。
そして、Pythonアプリのために、 カスタムアトリビュート を追加することができます。
カスタムイベントを完全に無効にするには、 custom_insights_events.enabled
False
を newrelic.ini
設定ファイルで設定してください。
Ruby カスタムイベントの収集は、Rubyエージェントのバージョン3.9.8.273以上でデフォルトで有効になります。カスタムイベントを送信するには、関連するAPIを呼び出すだけです。例えば、以下のようになります。
::NewRelic::Agent.record_custom_event('WidgetSale ', color : 'red ', weight : 12.5 )
最初の引数はイベントタイプの名前を定義し、2番目の引数はカスタムイベントの属性を持つハッシュです。作成するユニークなイベントタイプ名の数を確実に制限し、これらの名前を動的に生成しないようにしてください。イベントタイプ名の制限については、 の制限と制限された文字 と NRQL の予約語 についてのドキュメントを参照してください。
Rubyエージェントが記録するイベントの最大数は、 newrelic.yml
の設定パラメータで変更できます。
custom_insights_events.max_samples_stored:
を設定ファイルに追加してください。
1分間に記録するイベントの最大数を整数で指定します。例えば、1分間に最大5000件のイベントを送信できるようにしたい場合は、次のように追加します。
custom_insights_events.max_samples_stored: 5000
そうすれば、Rubyアプリに カスタム属性 を追加することができます。
カスタムイベントを完全に無効にするには、 custom_insights_events.enabled: false
to newrelic.yml
.
タイムスタンプエージェントを介して収集・記録されるイベントにタイムスタンプを指定することはできません。エージェントは、APIを介して記録された時期に基づいて、イベントに自動的にタイムスタンプを割り当てます。
上限値および文字の制限 サイズ制限、データタイプ、ネーミングシンタックスの要件については、 Custom event data requirements を参照してください。
予約語 カスタム属性を作成する前に、NRQL で使用される New Relic の reserved terms のリストを確認してください 。そうしないと、予期しない結果が発生する可能性があります。