本ドキュメントでは、 メトリック API のデータ要件について説明しています。
最大限の制限
すべてのMetricデータには、以下のデフォルトリミットが適用されます。
条件 | 制限 |
---|
タイムスタンプ値の年齢範囲 | 報告されたタイムスタンプが48時間前よりも古い、または報告された時点から24時間よりも新しいメトリクスは削除されます。 |
最大データポイント/分(DPM) | 300〜1500万DPM (詳細) |
1日あたりのアカウントごとの最大ユニーク時系列(カーディナリティ | 1〜1500万(詳細) タイムスケールは、メトリック名と任意の属性を組み合わせた単一のユニークなものです。 |
メトリック名ごとの1日あたりの最大ユニークタイムスケール(カーディナリティ | 100k |
最大ペイロード数/分 | 100k (詳細) |
メトリクスごとの最大アトリビュート | 100 |
最大のメトリック属性名の長さ | 255文字 |
属性キーの最大文字数 | 255文字 |
最大メトリック属性値の長さ | 4096文字 |
許可されるHTTPプロトコル | HTTPSのみ |
Javaの長さの最小値または最大値から外れる数値の長さ | 長さの数値が、Javaの長さの最小値または最大値から外れている場合は、拒否されます。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
Javaのダブル値の最小値または最大値から外れる数値のダブル値 | Javaのダブル値の最小値または最大値から外れた数値のダブル値は拒否されます。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
ペイロードサイズ | 合計最大サイズまたは長さ: 投稿ごとに最大1MB (10^6バイト)。圧縮の使用を強く推奨します。 |
ペイロードフォーマット | ペイロードは、 UTF-8 でエンコードされている必要があります。 |
アトリビュートネーミングシンタックス | 属性名は、英数字、コロン( : )、ピリオド( . )、およびアンダースコア( _ )の組み合わせにすることができます。 |
以下のデフォルトリミットは、Prometheus Remote Writeインテグレーションを介して収集されたデータにのみ適用されます。
条件 | 制限 |
---|
5分間隔でのアカウントごとの最大ユニークカウントおよびサマリー時系列(カーディナリティ | 1〜1500万(詳細) 時系列は、メトリック名と任意の属性の単一の一意の組み合わせです。この制限を超えて受信した時系列は削除されます。この制限は、標準のメトリック制限の前およびそれに加えて適用されます。 |
追加アカウント条件
メトリックAPIの制限は、個々のアカウントレベルで適用されます。 DPMとカーディナリティのデフォルトの制限は、無料利用枠の組織の3Mから、一部の有料組織の10.2Mまでの範囲です。組織の制限を理解するには、制限UIを参照してください。有料組織のリクエストに応じて、DPMとカーディナリティを15Mに増やすことができます。 1分あたりの最大ペイロードは、ケースバイケースで100kを超えて調整できます。メトリックレート制限の変更をリクエストするには、New Relicアカウントの担当者に連絡するか、サポートポータルにアクセスしてください。
レートリミット違反
ここでは、レートの制限を超えたときのMetric APIの動作と、制限を超えた場合の対応について説明します。
Data points per minuteは、個々のメトリック値がMetric APIに送信される毎分のレートを指します。
アカウントの最大DPM制限を超えると、New RelicMetricAPIは残りの1分間に429
応答を返します。応答には、新しいデータを再送信または送信する前に秒単位で待機する時間を示すRetry-After
ヘッダーが含まれます。
この問題を解決するには、送信するデータポイントの数を減らすか、レートリミットの変更をリクエストしてください。その後のサブスクリプションの変更は、変更後のレートリミットに影響しません。アカウントの変更がレートリミットに影響を与える場合は、レートリミットを調整するよう当社に通知する必要があります。
レートリミットの変更をリクエストするには、New Relic のアカウント担当者に連絡するか、 Support ポータル にアクセスしてください。
時系列は、メトリック名とそのメトリックに割り当てられた属性の単一の一意の組み合わせです。たとえば、単一の属性hostname
を持つCPU utilization
メトリックが10個の異なるホストから送信された場合、これはhostname
属性の10個の異なる値と10個の一意のメトリック時系列に等しくなります。
24時間の間に、アカウントごと、1日ごとのユニークなメトリックのタイムスケール(カーディナリティ)の制限を超えた場合、エンドポイントは引き続き生のメトリックデータを受信して保存します。ただし、New Relic は 24 時間の残りの期間、追加のアグリゲート ロールアップ (1 分、5 分など) の作成を停止します。(これらのロールアップは、60分以上のタイムウィンドウを照会するためにデフォルトで使用されます)。
このような違反が発生しても、60分またはそれ以下の時間枠を指定するか、RAWキーワードを指定することで、データの照会を続けることができます( view and query your metrics で説明しています)。これは、違反の潜在的な原因を特定するのに役立ちます。
時系列は、メトリック名とそのメトリックに割り当てられた属性の単一の一意の組み合わせです。たとえば、単一の属性hostname
を持つCPU utilization
メトリックが10個の異なるホストから送信された場合、これはhostname
属性の10個の異なる値と10個の一意のメトリック時系列に等しくなります。
24時間の間に、メトリック名ごと、1日ごとのユニークなメトリックの時系列(カーディナリティ)の制限を超えた場合、エンドポイントは引き続き生のメトリックデータを受信して保存します。ただし、New Relic は 24 時間の残りの期間、追加のアグリゲート ロールアップ (1 分、5 分など) の作成を停止します。(これらのロールアップは、60分を超えるタイムウィンドウのクエリにデフォルトで使用されます)。
このような違反が発生しても、60分またはそれ以下の時間枠を指定するか、RAWキーワードを指定することで、データの照会を続けることができます( view and query your metrics で説明しています)。これは、違反の潜在的な原因を特定するのに役立ちます。
1分以内にMetricAPIエンドポイントに対して100,000を超えるPOSTリクエストを行うと、エンドポイントはその分の残りの時間に429
応答を返します。応答には、新しいデータを再送信または送信する前に秒単位で待機する時間を示すRetry-After
ヘッダーが含まれます。
一般的に、この限界に達した場合は、より大きなペイロードの作成を検討してください。そのためには、より多くのデータポイントを各リクエストに組み合わせて、必要なPOSTの数を減らします。
これができない場合は、New Relic のアカウント担当者に連絡するか、 サポートポータル にアクセスして、レートリミットの引き上げをリクエストすることができます。
制限された属性
これらの属性は、New Relic プラットフォームによって制限されています。メトリックデータポイントの属性セクションでこれらのキーを使用して送信された値は、データポイントが削除されるか、値が省略または上書きされます。
属性 | 説明 |
---|
newrelic.source
| これにより、値metricAPI にリセットされます。 |
metricName
| これは、各データポイントに渡されたname 値にリセットされます。これにより、 name を属性キーにすることができます。 |
endTimestamp
| timestamp interval.ms はデータポイントのendTimestamp に変換されます。
|
これらの属性は、エンティティを識別するために内部的に使用されます。メトリック・データ・ポイントの属性セクションでこれらのキーを使用して送信された値は、UIにエンティティが表示されなかったり、遠隔測定が期待したエンティティに関連付けられなかったりするなど、未定義の動作を引き起こす可能性があります。詳細については、 Entity synthesis を参照してください。
属性 | 説明 |
---|
entity.guid
| New Relic がエンティティに割り当てる一意の識別子。 |
entity.name
| エンティティの人間が読める名前で、UIでエンティティを識別するためによく使われます。 |
entity.type
| ホストやアプリケーションなど、異なるタイプのエンティティを区別するために使用されます。 |
追加の制限があります。
制限 | コメントコメント |
---|
メトリクスおよびアトリビュート名 | メトリック名と属性名に同じ値を渡すことはできません。 次の例では、メトリックの名前がservice.errors.all で、属性service.errors.all があるため、メトリックは無効です。 例アトリビュートとして使用されているメトリック値(無効) "name": "service.errors.all", "timestamp": 1531414060739, "service.response.statuscode": "400", "service.errors.all": "test",
|
予約語 | accountID 、 appId 、 eventType などの予約語は使用しないでください。また、バックティック( `` )しない限り、NRQL構文用語の使用は避けてください。
|
メートル法のJSON内のキー | メトリックJSON内で使用されるすべてのキーを属性キーにすることはできません。これには、 interval.ms 、 timestamp 、 value 、 common 、 min 、 max 、 count 、 sum 、およびmetrics が含まれます。 例外: name を属性キーとして使用できます。 |
制限されたメトリック値
value
がNaN
(数値ではない)、 positive infinity
、またはnegative infinity
に等しいメトリック API に送信されたメトリック データはすべて破棄されます。