Metric API を使用して、New Relic プラットフォームにカスタム メトリックを送信します。このドキュメントには、最初のカスタムメトリックを送信するためのクイックスタートと、メトリックデータをフォーマットして送信する方法についての詳細な情報が含まれています。
クイックスタート測定データの送信
指標タイプcount
、 gauge
、およびsummary
をレポートします。メトリクスの詳細については、ドキュメントを参照してください。
メトリックデータは、HTTP POST リクエストで New Relic に送信されます。各リクエストは1つ以上のメトリックデータで構成され、メトリック名、タイムスタンプ、値で構成されます。
この例に従って、最初のメトリックデータポイントをNew Relicに送信します。
データをレポートするアカウントのを取得します。
ライセンスキーを以下のJSONに挿入し、そのJSONを当社の エンドポイント に送信します。
timestamp
を有効なエポック タイムスタンプで更新してください。この例では、memory.heap
という名前のメトリックに対して 1 つのメトリック データ ポイントを作成しますが、メトリック タイプを指定するか、オプションのcommon
ブロックを追加することで、追加の属性またはデータ ポイントを作成できます。bash$curl -vvv -k -H "Content-Type: application/json" \>-H "Api-Key: NEW_RELIC_LICENSE_KEY" \>-X POST https://metric-api.newrelic.com/metric/v1 \>--data '[{$"metrics":[{$"name":"memory.heap",$"type":"gauge",$"value":2.3,$"timestamp":CURRENT_TIME,$"attributes":{"host.name":"dev.server.com"}$}]$}]'
メトリックは数秒で New Relic で利用できるようになります。このクエリを使って、任意の NRQL インターフェース からデータを照会することができます。
FROM Metric SELECT max(memory.heap) TIMESERIES
データが表示される場所については、 Find Metric API data を参照してください。
エンドポイントURL
メトリックAPIのエンドポイントにメトリックデータを送信する場合は、HTTP POSTを使用します。
https://metric-api.newrelic.com/metric/v1
ヒント
組織が EU データセンターでデータをホストしている場合は、 EU 地域のエンドポイントを使用していることを確認してください。この API の EU エンドポイントは次のとおりです。
https://metric-api.eu.newrelic.com/metric/v1
HTTPリクエストヘッダ
POSTリクエストには、以下のHTTPリクエストヘッダを含めてください。一部のパラメーターは、リクエストヘッダーではなく、クエリパラメーターとして送信できます。
ヘッダー | クエリのパラメータとして送信しますか? | 詳細 |
---|---|---|
| いいえ | Required. |
| いいえ | Required (usually set automatically by the HTTP client)チャンクエンコーディングで送信されない限り、リクエスト本体の長さ(オクテット(8 ビットバイト)単位)。 このヘッダーは通常、データを送信する基盤となる HTTP クライアントによってデフォルトで設定され、ほとんどの場合、エンドユーザーによる追加の作業は必要ありません。 |
| はい | Required. データをレポートするアカウントの 。 これがヘッダーとクエリ ヘッダーの両方として指定されている場合、値は一致する必要があります。 |
| いいえ | Required if GZIP. 値は |
| いいえ | Optional - Reserved for future use. 値は有効な |
HTTPリクエストボディ
HTTP POSTリクエストのボディは、JSON形式である必要があります。以下に、JSONペイロードの要件と推奨事項を記載します。
ペイロードはUTF-8としてエンコードする必要があります。
構造
JSONペイロードはこの構造体を使用しています。
- JSONのペイロードは、マップの配列です。
- 各マップには
metrics
キーが含まれている必要があります。その値は、1 つ以上の指標データ ポイントを含む配列です。 - メトリック データ ポイントは、
name
、value
、およびtimestamp
とオプションの属性セットによって識別されます。
必要なキー・バリュー・ペア
metrics
配列内の各指標データ ポイント マップは、次のキーと値の構造を使用します:
鍵 | 説明 |
---|---|
ストリング | Requiredメトリクスの名前。 値は 255 文字未満である必要があります。 |
数字 or 地図 | Required。値はメトリクスの種類によって異なります。 |
長さ | Required. メトリクスの開始時刻( Unix 時間) 。 デフォルトでは UTC タイムゾーンが使用されます。 このフィールドは、秒、マイクロ秒、ナノ秒もサポートします。 ただし、データは保存およびクエリのためにミリ秒に変換されます。 タイムスタンプが 48 時間以上前、または報告時から 24 時間以上経過したメトリクスは削除されます。 |
ポジティブロング | Required for |
| 推奨。 これは、サポートされているメトリクス タイプの 1 つである必要があります。 タイプを指定しない場合は、デフォルトで |
文字列, JSON 数字, または ブーリアン | 推奨。 この特定のメトリクスに関連付けられたキーの値ペアのマップ。 値は文字列、JSON 数値、またはブール値にすることができます。 キーは大文字と小文字が区別され、255 文字未満にする必要があります。 |
メトリック間で属性を共有する common
複数の指標に一連の属性を含めたい (各指標に同じ属性を追加したくない) 場合は、 common
ブロックを使用できます。これは、関連するすべてのメトリック データ ポイントに適用される情報を指定するオプションのマップです。メトリック データ ポイントに同じキーが存在する場合、共通セクションの値は上書きされます。
ブロックを含むことができます。
属性 | 説明 |
---|---|
長さ | メトリックの開始時刻を Unix時間 で表したものです。デフォルトでは、UTCタイムゾーンの現在の時刻になります。このフィールドは、秒、マイクロ秒、およびナノ秒もサポートしています。ただし、データは保存や後のクエリのためにミリ秒に変換されます。 |
ポジティブロング | Required for |
文字列、JSONの数値、またはブーリアン | この特定のメトリックに関連するキーと値のペアのマップ。値には、文字列、JSONの数値、またはブーリアンを使用できます。 |
レスポンスの検証とステータスコード
メトリクス API は、成功したリクエストに対して202
レスポンス コードを返します。データが受け入れられると、HTTP 202
応答コードが次のような応答構造で返されます:
HTTP/1.1 202 AcceptedContent-Type: application/json; charset=UTF-8Content-Length: 52Access-Control-Allow-Methods: GET, POST, PUT, HEAD, OPTIONSAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Origin: *Connection: keep-alive
{"requestId":"f0e7bfff-001a-b000-0000-01682bcf4565"}
欠損データ 202
202
コードは、API がデータを受信し、データが基本的な検証チェックに合格したことを示します。通常、データは数秒以内にクエリに使用できるようになります。ただし、New Relic はデータを受け取った後、非同期で追加の検証を実行します。202
レスポンスを受信してもメトリクスが見つからない場合は、この非同期検証中に New Relic がエラーを検出したことを示しています。
これらのエラーは、使用した Insert API キーに関連付けられたアカウントでNrIntegrationError
イベントをクエリすることで見つけることができます。各リクエストのrequestId
は、 NrIntegrationError
イベントでタグ付けされます。詳しくは、 NRIntegrationError
イベントのトラブルシューティングを参照してください。
ステータスコード
Metric APIは、以下のHTTPステータスコードを返すことができます。
ステータスコード | 定義 |
---|---|
| データを受け付けました。 |
| リクエストの構造が無効です。 |
| 認証に失敗しました。 |
| リクエストパスが正しくありません。 |
| POST以外のリクエストメソッドを使用しました。 |
| リクエストがエンドポイントに到達するまでに時間がかかりすぎました。 |
|
|
| ペイロードが大きすぎました。ペイロードは1MB(10^6バイト)以下でなければなりません。 |
| リクエストURIが長すぎました。 |
|
|
| リクエストレートのクォータを超えてしまいました。 |
| リクエストヘッダーが長すぎます。 |
| サーバーエラーが発生しました(再試行してください)。 |