本ドキュメントでは、 メトリック API のデータ要件について説明しています。
最大限の制限
すべてのMetricデータには、以下のデフォルトリミットが適用されます。
条件 | リミット |
---|
タイムスタンプ値の年齢範囲 | 報告されたタイムスタンプが48時間前よりも古い、または報告された時点から24時間よりも新しいメトリクスは削除されます。 |
最大データポイント/分(DPM) 参照 追加のアカウント条件. | 1百万DPM |
1日あたりのアカウントごとの最大ユニーク時系列(カーディナリティ 参照 追加のアカウント条件. | 100万 タイムスケールは、メトリック名と任意の属性を組み合わせた単一のユニークなものです。 |
メトリック名ごとの1日あたりの最大ユニークタイムスケール(カーディナリティ | 100k |
最大ペイロード数/分 | 100k |
メトリクスごとの最大アトリビュート | 100 |
最大のメトリック属性名の長さ | 255文字 |
属性キーの最大文字数 | 255文字 |
最大メトリック属性値の長さ | 4096文字 |
許可されるHTTPプロトコル | HTTPSのみ |
Javaの長さの最小値または最大値から外れる数値の長さ | 長さの数値が、Javaの長さの最小値または最大値から外れている場合は、拒否されます。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
Javaのダブル値の最小値または最大値から外れる数値のダブル値 | Javaのダブル値の最小値または最大値から外れた数値のダブル値は拒否されます。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
ペイロードサイズ | 合計最大サイズまたは長さ: 投稿ごとに最大1MB (10^6バイト)。圧縮の使用を強く推奨します。 |
ペイロードフォーマット | ペイロードは、 UTF-8 でエンコードされている必要があります。 |
アトリビュートネーミングシンタックス | 属性名は、英数字文字、コロン(: )、ピリオド(. )、アンダースコア(_ )の組み合わせにできます。 |
以下のデフォルトリミットは、Prometheus Remote Writeインテグレーションを介して収集されたデータにのみ適用されます。
条件 | リミット |
---|
5分間隔でのアカウントごとの最大ユニークカウントおよびサマリー時系列(カーディナリティ 参照 追加のアカウント条件. | 100万 タイムスケールは、メトリック名と任意の属性を組み合わせた単一のユニークなものです。この制限を超えて受信したタイムスケールは削除されます。この制限は、標準的なメトリックの制限に先立って、またそれに加えて適用されます。 |
追加アカウント条件
Metric APIの制限は、個々のアカウントレベルで適用されます。試用版および有料版のアカウントには、試用目的で1M DPMおよび1Mカーディナリティの制限が適用されますが、アカウントに対して最大15M DPMおよび15Mカーディナリティを要求することができます。メトリックレート制限の変更をリクエストするには、New Relic のアカウント担当者にお問い合わせいただくか、 サポートポータル にアクセスしてください。
レートリミット違反
ここでは、レートの制限を超えたときのMetric APIの動作と、制限を超えた場合の対応について説明します。
Data points per minuteは、個々のメトリック値がMetric APIに送信される毎分のレートを指します。
アカウントで DPM の上限を超えた場合、New Relic Metric API は 429
レスポンスを 1 分間の残りの時間で返します。この応答には、 Retry-After
ヘッダが含まれており、再送信や新しいデータを送信するまでの待ち時間を秒単位で示しています。
この問題を解決するには、送信するデータポイントの数を減らすか、レートリミットの変更をリクエストしてください。その後のサブスクリプションの変更は、変更後のレートリミットに影響しません。アカウントの変更がレートリミットに影響を与える場合は、レートリミットを調整するよう当社に通知する必要があります。
レートリミットの変更をリクエストするには、New Relic のアカウント担当者に連絡するか、 Support ポータル にアクセスしてください。
タイムスケールは、メトリック名とそのメトリックに割り当てられている属性の単一かつ一意の組み合わせです。たとえば、 CPU使用率
メトリックに単一の属性 ホスト名
が10台の異なるホストから送信された場合、これは ホスト名
属性に10個の異なる値があり、10個の固有のメトリック・タイムスケールに相当します。
24時間の間に、アカウントごと、1日ごとのユニークなメトリックのタイムスケール(カーディナリティ)の制限を超えた場合、エンドポイントは引き続き生のメトリックデータを受信して保存します。ただし、New Relic は 24 時間の残りの期間、追加のアグリゲート ロールアップ (1 分、5 分など) の作成を停止します。(これらのロールアップは、60分以上のタイムウィンドウを照会するためにデフォルトで使用されます)。
このような違反が発生しても、60分またはそれ以下の時間枠を指定するか、RAWキーワードを指定することで、データの照会を続けることができます( view and query your metrics で説明しています)。これは、違反の潜在的な原因を特定するのに役立ちます。
タイムスケールは、メトリック名とそのメトリックに割り当てられている属性の単一かつ一意の組み合わせです。たとえば、 CPU使用率
メトリックに単一の属性 ホスト名
が10台の異なるホストから送信された場合、これは ホスト名
属性に10個の異なる値があり、10個の固有のメトリック・タイムスケールに相当します。
24時間の間に、メトリック名ごと、1日ごとのユニークなメトリックの時系列(カーディナリティ)の制限を超えた場合、エンドポイントは引き続き生のメトリックデータを受信して保存します。ただし、New Relic は 24 時間の残りの期間、追加のアグリゲート ロールアップ (1 分、5 分など) の作成を停止します。(これらのロールアップは、60分を超えるタイムウィンドウのクエリにデフォルトで使用されます)。
このような違反が発生しても、60分またはそれ以下の時間枠を指定するか、RAWキーワードを指定することで、データの照会を続けることができます( view and query your metrics で説明しています)。これは、違反の潜在的な原因を特定するのに役立ちます。
Metric APIエンドポイントに対して1分間に100k以上のPOSTリクエストを行った場合、エンドポイントはその1分間の残りの時間、 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 であるため、メトリックは無効です。 例アトリビュートとして使用されているメトリック値(無効) [
{
"metrics": [
{
"name": "service.errors.all",
"type": "count",
"value": 15,
"timestamp": 1531414060739,
"interval.ms": 10000,
"attributes": {
"service.response.statuscode": "400",
"service.errors.all": "test",
"service.name": "foo"
}
}
]
}
]
|
予約語 | Metric API は New Relic Insights から accountID , appId , eventType など、いくつかの 予約語を継承しています。さらに、NRQL の構文用語は、バックティック (`` ) しないと制限されます。完全なリストは、 Reserved words を参照してください。NRQL の構文用語 を参照してください。 |
メートル法のJSON内のキー | メトリックのJSON内で使用されるすべてのキーは、属性キーではありません。これには interval.ms , timestamp , value , common , min , max , count , sum , metrics が含まれます。 例外: 名前 を属性キーとして使用することができます。 |