• ログイン

Event APIの説明

New RelicのイベントAPIは、 カスタムイベントをNew Relicにレポートする1つの方法です。イベントAPIでは、POSTコマンドを使用してカスタムイベントデータをNew Relicアカウントに送信できます。これらのイベントはその後、NRQLを使用してクエリとチャート化できます。

当社のイベントAPIをお試しになりますか?New Relicアカウントの作成は無料です。クレジットカードは不要です。

関連コンテンツ:

要件

イベントAPIの限界および制限された属性については、制限を参照してください。

TCPポート443のアウトバウンド接続が、地域に一致するCIDR範囲に使用できることを確認します。推奨される設定方法は、DNS名insights-collector.newrelic.comまたはinsights-collector.eu01.nr-data.netを使用することです。

基本ワークフロー

イベントAPIは、非同期のエンドポイントです。このため、大容量のPOSTを、非常に低いレスポンスレイテンシで確実に送信できます。

ヒント

アカウントがEUデータセンターでデータをホストする場合は、適切なEUリージョンアカウント向けAPIエンドポイントを使用していることを確認してください。

New Relicアカウントにカスタムイベントを送信する場合は、以下の手順に従います。

  1. データをレポートするアカウントのライセンスキーを取得します。
  2. カスタムイベントまたは属性を作成する前に、New RelicのNRQLが使用する予約語のリストを確認します。
  3. アプリケーションのインストゥルメンテーション、APIの照会、またはその他の方法でイベントのJSONを生成します
  4. POSTリクエストでcurlを使用し、圧縮されたJSONペイロード(例:gzipまたはdeflate)をHTTPSエンドポイントに送信します。
  5. 推奨: NRQLアラート条件を設定し、構文解析エラー発生時に通知します。

このメソッドでは、イベントがアカウントに直接送信され、任意のNRQLインタフェースから、またはクエリAPIによってアクセスできるようになります。

イベントAPIでは、カスタムイベントで使用できるサイズ、速度、文字を制限しています。NRQLにおいて使用な他のイベント同様、作成後のカスタムイベントの更新や削除はできません。カスタムイベントに問題がある場合は、トラブルシューティング手順に従うか、または新規カスタムイベントを作成します。

ライセンスキーの取得

ライセンスキーが必要です。ライセンスキーは、特定のユーザーではなく、アカウントに関連付けられています。これは、そのキーにアクセスできるアカウント内の誰もがそのキーを使用できることを意味します。

同じライセンスキーを使用して、複数のイベントタイプを同じアカウントに送信することができます。ただし、安全性を確保するため、異なるアプリケーションやデータソースには別々のキーを使用してください。

JSONのフォーマット化

イベントAPIは、ペイロードに含まれる属性に対する特定の形式を受け入れます。浮動小数点または文字列値のみが許容されます。

カスタムイベントの送信

イベントAPIに送信されるデータは、圧縮されたJSON形式をシンプルなHTTPS POSTリクエストで使用するものです。この例ではgzipを使用していますが、deflateでも可能です。

重要

常に、すべてのペイロードを圧縮します。こうすることで、送信できるデータの容量が増え、構文解析中のリソース節約になります。

HTTPリクエストを生成する前に、リクエストが適切に書式化されていることを確認してください。これには、以下が含まれます。

  • Api-Keyには正しいライセンスキーが含まれています。
  • Content-Typeapplication/jsonです。
  • リクエストはPOSTのみを使用している。APIは、PUTおよびGETリクエストを受け入れません。

APIはHTTP/1.1の持続的接続に対応しています。これは、イベントの負荷が非常に高い場合にクライアント側のパフォーマンスを管理する上で役立ちます。

リクエストとレスポンスの確認またはトラブルシューティング

イベントAPIは、リクエストを処理するにあたって2段階のプロセスを踏みます。

  1. イベントAPIは、ヘッダーおよびペイロードのサイズの妥当性に基づき、リクエストを同期的に応答または拒否します。
  2. イベントAPIは、成功したHTTPレスポンスがクライアントに提供された後で、非同期的にペイロードを構文解析します。これは、データの欠損もしくは不正な形式のデータによるエラーを生成する場合があります。これらは、送信エラーまたは構文解析エラーとして分類されます。

送信に成功すると、ペイロード内に存在しうるデータエラーに関わらず、すべてのレスポンスは200となります。このレスポンスに含まれるuuidは、各リクエスト向けに作成されるユニークIDになります。uuidは、リクエストに関して作成されたエラーイベントにも表示されます。

その他の予想される問題:

  • 10秒を超えるAPIコールはタイムアウトします。
  • 100 KBを超えるペイロードではレスポンスタイムが長くなる可能性があります。

推奨:成功メッセージの確認に加えて、データのNRQLクエリを作成して、データが利用可能であることを確認します。

NrIntegrationErrorによるクエリとアラート

NrIntegrationErrorイベントでは、New Relicアカウントに送信されるカスタムデータをクエリしてアラートを設定できます。推奨:New Relic Alertsから構文解析エラーに関する通知を受け取るには、NrIntegrationErrorNRQLアラート条件を作成します。以下のNRQLクエリ例を使用します。

SELECT message FROM NrIntegrationError WHERE newRelicFeature = 'Event API' AND category = 'EventApiException'

NrIntegrationError属性

トラブルシューティング

timestamp

リクエストを受け取った際のタイムスタンプ。timestamp属性を使用すると、過去24時間以内で64ビット整数のUnixタイムスタンプを取得します。Unixエポックからの相対的な秒数かミリ秒数でタイムスタンプを定義できます。

タイムスタンプには小数点を使用しないでください。小数点を使用する場合、カスタムイベント作成時の属性がタイムスタンプのデフォルトになります。

newRelicFeature

エラーが発生している機能の名前。すべてのカスタムイベントの構文解析エラーには、これはEvent APIになります。

apiKeyPrefix

エラーを生成したリクエストで使用した、ライセンスキーの最初の6文字。

requestId

エラーを生成したリクエストのAPIが返したuuid

Category

エラーのカテゴリー。カスタムイベントの場合、これはEventApiExceptionです。

Message

エラーメッセージの内容。

Name

エラーの名前。カスタムイベントの場合、これは常にEventValidationExceptionです。

eventTypeSample

使用可能な場合、エラーを生成したイベントタイプの1つ。

データを検索する

イベントAPIを通じて(またこのAPIを使用するインテグレーションから)送信されたデータを検索するには、データのクエリを行えます。たとえば、NRQLを使用してカスタムイベントのクエリを行うには、次を実行します。

SELECT * FROM YOUR_CUSTOM_EVENT

クエリ方法の詳細については、クエリデータを参照してください。

HTTPリクエストの制限

イベントAPIのレート制限は、アカウントあたり毎分HTTPリクエスト100,000件(POST)です。(これは1分あたりのイベント数制限ではなく、1分あたりのPOST数のみとなる点に注意してください。)

こうした制限があることで、当社のマルチテナントプラットフォーム全体のアカウントにおける大量のトラフィック急増が、サービスのパフォーマンスにネガティブに作用しないようにできます。

1分間の時間枠においてAPI使用状況が100k POSTを超えた場合、残りの1分間の時間枠における以後のAPIリクエストは、429のレスポンスコードによって拒否されます。1分間の時間枠の最後には、カウンターがリセットされてトラフィックが再開されます。

この制限は、通常の状況では達するべきでない上限閾値を示すものです。レスポンス数が429よりも多い場合、APIの使用頻度を減らすことを検討します。近い将来、通常よりも高いアクティビティレベルが予想されており、それに備えたい場合は、テクニカルサポートに問い合わせてください

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.