本ドキュメントでは、 メトリック API のデータ要件について説明しています。
最大限の制限
すべてのMetricデータには、以下のデフォルトリミットが適用されます。
条件 | 制限 |
---|
タイムスタンプ値の年齢範囲 | 報告されたタイムスタンプが48時間前よりも古い、または報告された時点から24時間よりも新しいメトリクスは削除されます。 |
最大データポイント/分(DPM) | 300〜1500万DPM (詳細) |
1 日あたりアカウントあたりの最大ユニーク時系列数 (カーディナリティ) | 1〜1500万(詳細) 時系列は、メトリック名と任意の属性の単一の一意の組み合わせです。 |
メトリクス名ごとの 1 日あたりの最大ユニーク時系列数 (カーディナリティ) | 100k |
最大ペイロード数/分 | 100k (詳細) |
メトリクスごとの最大アトリビュート | 100 |
最大のメトリック属性名の長さ | 255文字 |
属性キーの最大文字数 | 255文字 |
最大メトリック属性値の長さ | 4096文字 |
許可されるHTTPプロトコル | HTTPSのみ |
Javaの長さの最小値または最大値から外れる数値の長さ | 長さの数値が、Javaの長さの最小値または最大値から外れている場合は、拒否されます。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
Javaのダブル値の最小値または最大値から外れる数値のダブル値 | Javaのダブル値の最小値または最大値から外れた数値のダブル値は拒否されます。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
倍精度浮動小数点数に変換するために丸めが必要な double 数値。 | 倍精度浮動小数点数に変換するために丸めが必要な double 数値は拒否されます。 この例は、 1.12345678901234567E18 です。double にはこれほど大きな値を含めることができますが、それを正確に表現するには十分な精度がありません ( 1.12345678901234573E18 に丸める必要があります)。 - その番号が共通ブロックにある場合は、そのブロック全体が落とされます。
- 数値がメートル法のデータポイントにある場合、その数値が存在するメートル法のデータポイントは削除されます。
|
ペイロードサイズ | 合計最大サイズまたは長さ: 1MB (10^6 bytes) maximum per POST 。 圧縮を使用することを強くお勧めします。 |
ペイロードフォーマット | ペイロードはUTF-8としてエンコードする必要があります。 |
アトリビュートネーミングシンタックス | 属性名は、英数字、コロン( : )、ピリオド( . )、およびアンダースコア( _ )の組み合わせにすることができます。 |
以下のデフォルトリミットは、Prometheus Remote Writeインテグレーションを介して収集されたデータにのみ適用されます。
条件 | 制限 |
---|
5 分間隔ごとのアカウントあたりの最大ユニークカウントとサマリー時系列 (カーディナリティ) | 1〜1500万(詳細) 時系列は、メトリック名と任意の属性の単一の一意の組み合わせです。 この制限を超えて受信された時系列は削除されます。 この制限は、標準のメトリック制限に先行して追加で適用されます。 |
追加アカウント条件
メトリクス API の制限は、個々のアカウント レベルで適用されます。DPM とカーディナリティのデフォルトの制限は 、無料版の組織では 300 万、一部の有料組織では最大 1,020 万の範囲です。組織の制限を理解するには、 制限 UIを参照してください。支払いを行う組織のリクエストに応じて、DPM とカーディナリティを 15M まで増やすことができます。1 分あたりの最大ペイロードは、ケースバイケースで 100,000 を超えて調整できます。メトリック レート制限の変更をリクエストするには、New Relic アカウント担当者に連絡するか、 サポート ポータルにアクセスしてください。
レート制限インシデント
ここでは、レートの制限を超えたときのMetric APIの動作と、制限を超えた場合の対応について説明します。
Data points per minuteは、個々のメトリック値がMetric APIに送信される毎分のレートを指します。
アカウントの最大DPM制限を超えると、New RelicMetricAPIは残りの1分間に429
応答を返します。応答には、新しいデータを再送信または送信する前に秒単位で待機する時間を示すRetry-After
ヘッダーが含まれます。
この問題を解決するには、送信するデータポイントの数を減らすか、レートリミットの変更をリクエストしてください。その後のサブスクリプションの変更は、変更後のレートリミットに影響しません。アカウントの変更がレートリミットに影響を与える場合は、レートリミットを調整するよう当社に通知する必要があります。
レートリミットの変更をリクエストするには、New Relic のアカウント担当者に連絡するか、 Support ポータル にアクセスしてください。
時系列は、メトリクス名とそのメトリクスに割り当てられた属性の単一の一意の組み合わせです。 たとえば、単一の属性を持つCPU utilization
Metriks hostname
が 10 個の異なるホストから送信された場合、これはhostname
属性の 10 個の異なる値と 10 個の一意の Metriks 時系列に相当します。
24 時間以内にアカウントごと、1 日ごとの一意のメトリクス時系列 (カーディナリティ) 制限を超えた場合、 エージェントは生のメトリクス データを引き続き受信して保存します。 ただし、New Relic は、残りの 24 時間にわたって追加の集計ロールアップ (1 分、5 分など) の作成を停止します。 (これらのロールアップは、60 分を超える時間ウィンドウをクエリするためにデフォルトで使用されます。)
このようなインシデントが発生した場合でも、60 分以下の時間枠を指定するか、RAW キーワードを指定することで、データのクエリを継続できます (詳細については、 「高カーディナリティ メトリック」を参照してください)。これは、インシデントの潜在的な原因を特定するのに役立ちます。
時系列は、メトリクス名とそのメトリクスに割り当てられた属性の単一の一意の組み合わせです。 たとえば、単一の属性を持つCPU utilization
Metriks hostname
が 10 個の異なるホストから送信された場合、これはhostname
属性の 10 個の異なる値と 10 個の一意の Metriks 時系列に相当します。
24 時間以内にメトリクス名ごと、1 日ごとの一意のメトリクス時系列 (カーディナリティ) の制限を超えた場合、 エージェントは生のメトリクス データを引き続き受信して保存します。 ただし、New Relic は、残りの 24 時間にわたって追加の集計ロールアップ (1 分、5 分など) の作成を停止します。 (これらのロールアップは、60 分を超える時間ウィンドウをクエリするためにデフォルトで使用されます。)
このようなインシデントが発生した場合でも、60 分以下の時間枠を指定するか、RAW キーワードを指定することで、データのクエリを継続できます (詳細については、 「高カーディナリティ メトリック」を参照してください)。これは、インシデントの潜在的な原因を特定するのに役立ちます。
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 があるため、メトリックは無効です。 Example: Metric value used as an attribute (invalid) "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 が含まれます。 Exception: name 属性キーとして使用できます。 |
制限されたメトリック値
value
がNaN
(数値ではない)、 positive infinity
、またはnegative infinity
に等しいメトリック API に送信されたメトリック データはすべて破棄されます。