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