サポートセンターホーム


帯域制限

概要

LogicMonitorのRESTAPIへのリクエストにはレート制限が課せられます。 制限は、エンドポイントとメソッドの組み合わせごとに割り当てられます。 たとえば、GET / device / devicesへのリクエストには、POST / device / devicesへのリクエストやGET / device / devices / ID / devicedatasourcesへのリクエストとは異なる制限がある場合があります。 レート制限を超えて行われたリクエストは、HTTP 429 Too ManyRequestsとエラーを含むレスポンスを受け取ります。 制限はユーザーごとではなく、アカウントに対して行われたすべてのリクエストに適用されます。

重要: デフォルトの制限は、時折のピーク使用量についてテストされており、これらの制限でAPIを継続的に使用することはありません。 定格制限でAPIを継続して使用すると、ポータルの全体的なパフォーマンスに影響を与える可能性があります。 LogicMonitorは、ポータルの可用性とパフォーマンスを最優先するため、ポータルのパフォーマンス、アラート、およびデータ収集に悪影響が及ぶ場合は、APIの制限をデフォルトから減らす権利を留保します。 ニーズがこれらの設計制限を超える場合は、カスタマーサクセスマネージャーと積極的に協力して、考えられるオプションについて話し合ってください。

応答ヘッダーのレート制限情報

制限および制限への近さに関する情報は、以下の応答ヘッダーで返されます。 これにより、課されるレート制限を表示し、必要に応じてスクリプトを調整してそれらを回避できます。

ヘッダ 製品説明
X-Rate-Limit-Limit X-Rate-Limit-Windowごとのリクエスト制限
Xレート制限-残り 時間枠に残っているリクエストの数
X-Rate-Limit-Window 秒単位のローリング時間ウィンドウの長さ

レート制限ロジック

制限は変更される可能性があるため、上記のヘッダーとその値に基づいてレート制限を回避することを目的としたロジックを使用することをお勧めします。 たとえば、レート制限に達したときに60秒待機してから別の要求を行うロジックをスクリプトに導入できます。 以下は、さまざまな言語にわたるそのようなロジックの例です。

Python

次のロジックは、requestsモジュールを使用してループで利用でき、「X-Rate-Limit-Remaining」ヘッダー値がゼロになった場合に単純なタイムアウトを実装します。

if (response.headers['X-Rate-Limit-Remaining'] == 0):
       window = response.headers['X-Rate-Limit-Window']
       time.sleep(float(window))
Python

Ruby

次のロジックは、ネットhttpライブラリを使用してループで利用でき、「X-Rate-Limit-Remaining」ヘッダー値がゼロになった場合に単純なタイムアウトを実装します。

if resp['X-Rate-Limit-Remaining'].to_i == 0
  sleep resp['X-Rate-Limit-Window'].to_i
  end
Ruby

Groovy

次のロジックは、Apache httpライブラリを使用してループで利用でき、「X-Rate-Limit-Remaining」ヘッダー値がゼロになった場合に単純なタイムアウトを実装します。

remainingRequestsHeader = response.getHeaders('X-Rate-Limit-Remaining');
windowHeader = response.getHeaders('X-Rate-Limit-Window');
remainingRequests = remainingRequestsHeader[0].getValue();
window = windowHeader[0].getValue();
 
if (remainingRequests.toInteger() == 0){
    Thread.sleep(window.toInteger() * 1000);
    }
Groovy

PowerShellの

PowerShellでレート制限を回避する方法は、リクエストを行う方法によって異なります。 Invoke-RestMethodコマンドレットは、例外が発生しない限り応答ヘッダーをスローします。そのため、Invoke-RestMethodを使用している場合は、HTTP429が返されたときに再試行を試みることをお勧めします。 たとえば、次のコード例に示すように、try catchループでAPIリクエストを作成し、結果のステータスが429の場合に再試行できます。

(または、Invoke-WebRequestコマンドレットを使用して、律速応答ヘッダーに基づいてロジックを追加することもできます。)

<# Make request & retry if failed due to rate limiting #>
$Stoploop = $false
 
do {
	try {
		<# Make Request #>
		$response = Invoke-RestMethod -Uri $url -Method $httpVerb -Headers $headers
		<# Print status and body of response #>
		$status = $response.status
		$body = $response.data| ConvertTo-Json -Depth 5
		Write-Host "Status:$status"
		Write-Host "Response:$body"
		$Stoploop = $true
		}
	catch {
		if ($response.status -eq 429){
			Write-Host "Request exceeded rate limit, retrying in 60 seconds..."
			Start-Sleep -Seconds 60
			}
		else {
			Write-Host "Request failed, not as a result of rate limiting"
			$Stoploop = $true
			}
		}
	}
While ($Stoploop -eq $false)
PowerShellの

デフォルトのレート制限

次の表に、エンドポイントとメソッドのリクエストの組み合わせごとのデフォルトのレート制限を示します。

HTTPメソッド APIリクエスト レート制限 APIの目的
OpsNotesの管理
DELETE / santaba / rest / settings / opsnotes / {id} 300 / min OpsNoteを削除します
GET / santaba / rest / settings / opsnotes / 500 / min OpsNotesのリストを取得する
GET / santaba / rest / settings / opsnotes / {id} 500 / min 特定のOpsNotesに関する情報を取得する
PUT / santaba / rest / settings / opsnotes / {id} 200 / min OpsNotesを更新する
POST / santaba / rest / settings / opsnotes 100 / min OpsNotesを追加する
アラートルールの管理
DELETE / santaba / rest / settings / alert / rules / {id} 300 / min アラートルールを削除する
PUT / santaba / rest / settings / alert / rules / {id} 200 / min アラートルールの更新
POST / santaba / rest / settings / alert / rules 200 / min アラートルールを追加
GET / santaba / rest / settings / alert / rules 500 / min アラートルールを取得する
管理する 警告
POST / santaba / rest / alert / alerts / {id} / note 200 / min アラートにメモを追加する
POST / santaba / rest / alert / alerts / {id} / ack 200 / min アラートを確認する
GET / santaba / rest / alert / alerts 400 / min アラートを受け取る
APIトークンの管理
POST / santaba / rest / settings / admins / {adminID} / apitokens 200 / min APIトークンを追加する
PUT / santaba / rest / settings / admins / {adminID} / apitokens / {apiTokenID} 200 / min APIトークンを更新します
GET / santaba / rest / settings / admins / apitokens 500 / min APIトークンを取得する
DELETE / santaba / rest / settings / admins / {adminID} / apitokens / {apiTokenID} 300 / min APIトークンを削除します
監査ログへのアクセス
GET / santaba / rest / settings / accesslogs 500 / min 監査ログエントリを取得する
コレクターの管理
POST / santaba / rest / settings / collectors 200 / min コレクターを追加する
GET / santaba / rest / settings / collectors 500 / min コレクターを取得
GET / santaba / rest / settings / collectors / {id} 500 / min 特定のIDのコレクター情報を取得する
GET / santaba / rest / settings / collectors / {id} / Installers / {platform + architecture} 500 / min Collectorインストーラーのダウンロード
PUT / santaba / rest / settings / collectors / {id} 200 / min コレクターの更新
DELETE / santaba / rest / settings / collectors / {id} 300 / min コレクターを削除
POST / santaba / rest / settings / collectors / {id} / ackdown 200 / min コレクターのダウンアラートを確認する
コレクターグループの管理
POST / santaba / rest / settings / collectors / groups 200 / min コレクターグループを追加する
GET / santaba / rest / settings / collectors / groups 500 / min コレクターグループを取得する
GET / santaba / rest / settings / collectors / groups / {id} 500 / min 特定のコレクターに関するグループ情報を取得する
PUT / santaba / rest / settings / collectors / groups / {id} 200 / min コレクターグループの更新
DELETE / santaba / rest / settings / collectors / groups / {id} 300 / min コレクターグループを削除する
ダッシュボードとウィジェットの管理
POST / santaba / rest / dashboard / dashboards / dashboard / dashboards 200 / min ダッシュボードを追加する
PUT / santaba / rest / dashboard / dashboards / {id} 200 / min ダッシュボードを更新する
GET / santaba / rest / dashboard / dashboards 500 / min ダッシュボードを取得する
GET / santaba / rest / dashboard / dashboards / {id} 500 / min 特定のダッシュボードに関する情報を取得する
DELETE / santaba / rest / dashboard / dashboards / {id} 300 / min ダッシュボードを削除する
PUT / santaba / rest / dashboard / widgets / {id} 200 / min ウィジェットの更新
POST / santaba / rest / dashboard / widgets 200 / min ウィジェットを追加する
GET / santaba / rest / dashboard / widgets 500 / min ウィジェットを取得する
GET / santaba / rest / dashboard / widgets / {id} 500 / min 特定のウィジェットに関する情報を取得する
DELETE / santaba / rest / dashboard / widgets / {id} 300 / min ウィジェットを削除する
ダッシュボードグループの管理
POST / santaba / rest / dashboard / groups 200 / min ダッシュボードグループを追加する
PUT / santaba / rest / dashboard / groups / {id} 200 / min dashbaordグループを更新する
GET / santaba / rest / dashboard / groups 500 / min ダッシュボードグループを取得する
GET / santaba / rest / dashboard / groups / {id} 500 / min 特定のダッシュボードグループに関する情報を取得する
DELETE / santaba / rest / dashboard / groups / {id} 300 / min ダッシュボードグループを削除する
データの取得
GET / santaba / rest / device / devices / {deviceID} / devicedatasources / {deviceDataSourceID} / instances / {instanceID} / graphs / {graphID} / data

OR

/ santaba / rest / device / devicedatasourceinstances / {instanceID} / graphs / {graphID} / data

OR

/ santaba / rest / device / devicedatasources / {deviceDataSourceID} / groups / {instanceGroupId} / graphs / {overviewGraphID} / data
500 / min インスタンスグラフデータを取得する
GET / santaba / rest / dashboard / widgets / {widgetID} / data 500 / min ウィジェットデータを取得する
GET / santaba / rest / service / services / {serviceID} / checkpoints / {checkpointID} / graphs / {graphName} / data 500 / min サービスグラフデータを取得する
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / data 500 / min 特定のデータソースのすべてのインスタンスのデバイスデータを取得します
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId} / data 500 / min 特定のデータソースのXNUMXつのインスタンスのデバイスデータを取得します
GET / santaba / rest / service / services / {serviceID} / checkpoints / {checkpointID} / data 500 / min ウェブサイトのデータを取得する
GET / santaba / rest // device / devices / {deviceId}> / devicedatasources / {deviceDataSourceId} / instances / {instanceId} / config 500 / min ConfigSourceインスタンスのすべての構成を取得します
データソースの管理
POST / santaba / rest / settings / datasources / importxml 200 / min XMLからデータソースをインポートする
GET / santaba / rest / device / devices / {deviceId} / devicedatasources 500 / min デバイスデータソースを取得する
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDataSourceId} 500 / min 特定のデバイスデータソースに関する情報を取得する
GET / santaba / rest / settings / datasources 500 / min データソースのリストを取得する
GET / santaba / rest / settings / datasources / {id} 500 / min 特定のデータソースに関する情報を取得する
GET / santaba / rest / settings / datasources / {id} / devices 500 / min データソースに関連付けられたデバイスを取得する
GET / santaba / rest / settings / datasources / {id} / updatereasons 500 / min データソースの更新履歴を取得する
GET / santaba / rest / settings / datasources?format = xml 500 / min すべてのデータソースをXMLにエクスポートします
GET / santaba / rest / settings / datasources / {id}?format = xml 500 / min XNUMXつのデータソースをXMLにエクスポートします
DELETE / santaba / rest / settings / datasources / {ID} 300 / min データソースを削除する
データソースインスタンスの管理
POST / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances 200 / min データソースにインスタンスを追加します
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances 500 / min データソースインスタンスのリストを取得する
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId} 500 / min 特定のDataSourceインスタンスに関する情報を取得します
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / groups 500 / min データソースインスタンスグループのリストを取得する
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / groups / {groupId} 500 / min 特定のデータソースインスタンスグループに関する情報を取得する
PUT / santaba / rest // device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId} 200 / min DataSourceインスタンスを更新します
DELETE / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId} 300 / min DataSourceインスタンスを削除します
デバイスの管理
GET / santaba / rest / device / unmonitoreddevices 500 / min 監視されていないデバイスを取得する
POST / santaba / rest / device / devices / {id} / scheduleAutoDiscovery 200 / min デバイスのアクティブディスカバリをスケジュールする
GET / santaba / rest / device / devices / {id} / alerts 600 / min デバイスのすべてのアラートを取得する
POST / santaba / rest / device / devices / {deviceID} / properties 200 / min デバイスのプロパティを追加する
DELETE / santaba / rest / device / devices / {deviceID} / properties / {propertyName} 300 / min デバイスのプロパティを削除する
PUT / santaba / rest / device / devices / {deviceID} / properties / {propertyName} 200 / min デバイスのプロパティを更新する
GET / santaba / rest / device / devices / {deviceID} / properties 700 / min すべてのデバイスプロパティを取得する
GET / santaba / rest / device / devices / {deviceID} / properties / {propertyName} 500 / min 特定のデバイスプロパティに関する情報を取得する
GET / santaba / rest / device / devices / {id} / sdts 500 / min デバイスのすべてのSDTを取得する
GET / santaba / rest / device / devices 700 / min デバイスのリストを取得する
GET / santaba / rest / device / devices / {id} 500 / min 特定のデバイスに関する情報を取得する
POST / santaba / rest / device / devices 200 / min デバイスを追加する
PUT / santaba / rest / device / devices / {id} 200 / min デバイスを更新する
PATCH / santaba / rest / device / devices / {id} 250 / min デバイスを更新する
DELETE / santaba / rest / device / devices / {id} 300 / min デバイスを削除する
デバイスグループの管理
GET / santaba / rest / device / groups / {id} / devices 500 / min 特定のデバイスグループのデバイスを取得する
GET / santaba / rest / device / groups / {id} / alerts 500 / min デバイスグループのすべてのアラートを取得する
DELETE / santaba / rest / device / groups / {groupID} / properties / {propertyName} 300 / min デバイスグループのプロパティを削除する
PUT / santaba / rest / device / groups / {groupID} / properties / {propertyName} 200 / min デバイスグループのプロパティを更新する
GET / santaba / rest / device / groups / {groupID} / properties 500 / min デバイスグループのプロパティを取得する
GET / santaba / rest // device / groups / {groupID} / properties / {propertyName} 500 / min 特定のデバイスグループのプロパティに関する情報を取得する
POST / santaba / rest / device / groups / {groupID} / properties 200 / min デバイスグループのプロパティを追加する
GET / santaba / rest / device / groups / {id} / sdts 500 / min デバイスグループのすべてのSDTを取得します
DELETE / santaba / rest / device / groups / {id} 300 / min デバイスグループを削除する
GET / santaba / rest / device / groups 400 / min デバイスグループのリストを取得する
GET / santaba / rest / device / groups / {id} 1000 / min 特定のデバイスグループに関する情報を取得する
PUT / santaba / rest / device / groups / {id} 200 / min デバイスグループを更新する
PATCH / santaba / rest / device / groups / {id} 250 / min デバイスグループを更新する
POST / santaba / rest / device / groups 200 / min デバイスグループを追加
エスカレーションチェーンの管理
POST / santaba / rest / settings / alert / chain 200 / min エスカレーションチェーンを追加する
PUT / santaba / rest / settings / alert / chains / {id} 200 / min エスカレーションチェーンを更新する
GET / santaba / rest / settings / alert / chain 500 / min エスカレーションチェーンのリストを取得する
GET / santaba / rest / settings / alert / chains / {id} 500 / min 特定のエスカレーションチェーンに関する情報を取得する
DELETE / santaba / rest / settings / alert / chains / {id} 300 / min エスカレーションチェーンを削除する
レポートの管理
GET / santaba / rest / report / reports 500 / min レポートのリストを取得する
GET / santaba / rest / report / reports / {id} 500 / min 特定のレポートに関する情報を取得する
POST / santaba / rest / report / reports 200 / min レポートを追加する
PUT / santaba / rest / report / reports / {id} 200 / min レポートを更新する
POST / santaba / rest / Functions 200 / min レポートを実行する
GET / santaba / rest / report / reports / REPORT_ID / tasks / TASK_ID 500 / min 既存のレポート実行タスクのURLを取得します
DELETE / santaba / rest / report / reports / {id} 300 / min レポートを削除する
レポートグループの管理
GET / santaba / rest / report / groups 500 / min レポートグループのリストを取得する
GET / santaba / rest / report / groups / {id} 500 / min 特定のレポートグループに関する情報を取得する
POST / santaba / rest / report / groups 200 / min レポートグループを追加する
PUT / santaba / rest / report / groups / {id} 200 / min レポートグループを更新する
DELETE / santaba / rest / report / groups / {id} 300 / min レポートグループを削除する
役割の管理
POST / santaba / rest / settings / roles 200 / min ロールを追加する
GET / santaba / rest / settings / roles 500 / min 役割のリストを取得する
GET / santaba / rest / settings / roles / {id} 500 / min 特定の役割に関する情報を取得する
PUT / santaba / rest / settings / roles / {id} 200 / min 役割を更新する
DELETE / santaba / rest / settings / roles / {id} 300 / min 役割を削除する
SDTの管理
GET / santaba / rest / sdt / sdts 500 / min SDTのリストを取得する
GET / santaba / rest / sdt / sdts / {id} 500 / min 特定のSDTに関する情報を取得する
POST / santaba / rest / sdt / sdts 200 / min SDTを追加する
PUT / santaba / rest / sdt / sdts / {id} 200 / min SDTを更新する
DELETE / santaba / rest / sdt / sdts / {id} 300 / min SDTを削除する
ウェブサイトの管理
GET / santaba / rest / service / services / {ID} / properties 500 / min Webサイトのすべてのプロパティを取得する
GET / santaba / rest / service / services / {id} / alerts 500 / min Webサイトのすべてのアラートを取得する
GET / santaba / rest / service / services 500 / min ウェブサイトのリストを取得する
GET / santaba / rest / service / services / {id} 500 / min 特定のWebサイトに関する情報を取得する
PUT / santaba / rest / service / services / {id} 200 / min ウェブサイトを更新する
PATCH / santaba / rest / service / services / {id} 250 / min ウェブサイトを更新する
GET / santaba / rest / service / services / {id} / sdts 500 / min WebサイトのすべてのSDTを取得する
DELETE / santaba / rest / service / services / {id} 300 / min ウェブサイトを削除する
ウェブサイトグループの管理
POST / santaba / rest / service / groups 200 / min Webサイトグループを追加する
GET / santaba / rest / service / groups 500 / min Webサイトグループのリストを取得する
GET / santaba / rest / service / groups / {id} 500 / min 特定のWebサイトグループに関する情報を取得する
PUT / santaba / rest / service / groups / {id} 200 / min Webサイトグループを更新する
PATCH / santaba / rest / service / groups / {id} 250 / min Webサイトグループを更新する
GET / santaba / rest / service / groups / {id} / sdts 500 / min WebサイトグループのすべてのSDTを取得する
DELETE / santaba / rest / service / groups / {id} 300 / min Webサイトグループを削除する
Webサイトのテスト場所を取得する
GET / santaba / rest / service / smcheckpoints 500 / min チェックポイントのリストを取得する
GET / santaba / rest / service / smcheckpoints / {id} 500 / min XNUMXつのサイトモニターチェックポイントに関する情報を取得する
しきい値の管理
PUT / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId} / alertsettings / {id} 200 / min インスタンスレベルのしきい値を更新する
GET / santaba / rest / device / devices / {deviceId} / devicedatasources / {deviceDatasourceId} / instances / {instanceId} / alertsettings 500 / min インスタンスレベルのしきい値を取得する
PUT / santaba / rest / device / groups / {groupId} / datasources / {datasourceId} / alertsettings 200 / min グループレベルのしきい値を更新する
GET / santaba / rest / device / groups / {groupId} / datasources / {datasourceId} / alertsettings 500 / min グループレベルのしきい値を取得する
GET / santaba / rest / device / groups / {groupId} / clusterAlertConf 500 / min クラスターアラート構成を取得する
POST / santaba / rest / device / groups / {groupId} / clusterAlertConf 200 / min クラスターアラート構成を追加する
PUT / santaba / rest / device / groups / {groupId} / clusterAlertConf / {id} 200 / min クラスターアラート構成を更新する
DELETE / santaba / rest / device / groups / {groupId} / clusterAlertConf / {id} 300 / min クラスターアラート構成を削除する
ユーザーの管理
POST / santaba / rest / settings / admins 200 / min ユーザーを追加
PUT / santaba / rest / settings / admins / {adminID} 200 / min ユーザーを更新する
GET / santaba / rest / settings / admins 500 / min ユーザーのリストを取得する
GET / santaba / rest / settings / admins / {adminID} 500 / min 特定のユーザーに関する情報を取得する
DELETE / santaba / rest / settings / admins / {adminID} 300 / min ユーザーを削除

記事上で