• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

APIのオーバーロード保護。429エラーの処理

他のお客様が時間のかかるクエリを実行している場合でも、お客様のREST APIコールに迅速に対応するために、New RelicはAPIにオーバーロード保護機能を搭載しています。

膨大なリソースを消費するほど大量のデータを照会している場合、APIのレスポンスコードとヘッダーには、お客様のAPIキーで利用可能な容量を超えたことが示されます。これは、ほとんどのお客様が目にすることのない稀な状態です。APIを非常に多くのリソースを消費する状態で使用しているお客様のみがこの状態になります。

お客様は、1分間に1000回のAPIコールに制限されます。

APIレスポンス

通常の運用では、APIはレスポンスに過負荷保護ステータスを付加しません。お客様は何もする必要はありません。

報告期間 時間間隔で、New Relic は各 API リクエストのシステムへの影響を追跡します。

これらは、過負荷保護やレート制限のトリガーとなる典型的なケースです。

  • 使用しているAPIキーが、1分間の最大リクエスト数を超えました。
  • 私たちのシステムは全体的に負荷が高く、いくつかのアカウントがレポートを減少させる必要があります。

レートリミッターがかかった場合、以下のようになります。

  • さらにAPIを呼び出すと、HTTPステータスコード429(リクエストが多すぎる)で失敗します。
  • HTTPレスポンスのヘッダとボディには、エラーに関する詳細な情報が含まれている場合もあれば、含まれていない場合もあります。
  • 報告期間終了後、再びAPIコールが許可されます。

ヘッダー

APIキーの個別制限を超えた場合に、APIレスポンスに表示されるHTTPヘッダーを以下に示します。

オーバーロードヘッダ

意味

X-RateLimit-Limit

1分間の最大リクエスト数

X-RateLimit-Remaining

この期間に残っているリクエストの数

X-RateLimit-Reset

現在の報告期間が終了するUNIXタイムスタンプ(1970年1月1日からの秒数)。APIリクエストは、この時間以降に応答されます。

X-RateLimit-Docs

このドキュメントにハイパーリンクを貼ることで、すぐに追加情報を得ることができます。

一般的なシステム上の問題が発生した場合に、APIレスポンスに表示されるHTTPヘッダは以下の通りです。

オーバーロードヘッダ

意味

リトライ・アフター

再試行するまでの秒数

以下は、呼び出し元が利用可能なリソースをすべて消費したことを示すAPIリクエストの例であり、2016年2月1日正午にさらなるAPIコールが再び許可されることを示しています。

curl -X GET 'https://api.newrelic.com/v2/applications.json' \
     -H 'Api-Key:$API_KEY' -i
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
...
X-RateLimit-Docs: https://docs.newrelic.com/docs/apis/rest-api-v2/requirements/api-overload-protection-preventing-429-errors
X-RateLimit-Reset: 1454313600
X-RateLimit-Remaining: 0
X-RateLimit-Limit: 1000

{}

レートリミッターエラーの防止

429エラーが発生した場合の最も簡単な対処法は、レポート期間が終了するまで待ってから次のAPIリクエストを送信することです。しかし、クエリを慎重に管理することで、過負荷保護エラーを未然に防ぐことができます。

多くのリソースを必要とするクエリを送信することがわかっている場合は、以下のような予防策を講じることができます。

Copyright © 2022 New Relic Inc.

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