ツールスロットリング
DevOps チェンジベロシティでは、ツールがスロットルされると、スロットリングの有効期限が切れてツールのステータスが [スロットル済み] に変わるまで、新しいイベントの処理が遅延されます。これは、 Azure DevOps、 GitHub、および GitLabで使用できます。
ツールがスロットルされると、エラーメッセージが表示されます。
スロットル済みステータス
スロットル済みステータスは、特定の使用制限に達したか超えたために、ツールが API 要求によるデータの取得を許可していないことを意味します。API 応答にレート制限があるか、要求エラーが多すぎます。その場合、DevOps ツールのステータスは [スロットル済み] に変更されます。
なぜこのようなことが起こるのか
一部のツールでは、特定の時間内に実行できる API 要求の数が制限されています。この制限により、悪用やサービス拒否攻撃を防止し、すべてのユーザーが API を引き続き使用できるようにすることができます。
この場合、DevOps ツールのステータスは [スロットル済み] に変更され、ツールによって課せられたレート制限が削除されるまで、それ以上の受信イベントは処理されません。それまでは、受信イベントは [ 保留] ステータスになります。スロットルの有効期限が切れると、イベントの処理が再開されます。
スロットルをリセットする方法
通常、ツール API は、レート制限が課される期間に関する情報を提供します。スロットルリセット時間を示します。この情報は、保留中の受信イベント、検出要求、または履歴インポート要求がある場合に、そのツールの API 要求を再開するために使用されます。
ツールでスロットルリセット時間が提供されない場合は、デフォルト値の 15 分が適用されます。デフォルト値は、DevOps プロパティページからプロパティ Default throttle reset time in minutes from current time (sn_devops.throttle.reset.time.default) を使用して変更できます。
スロットル済みステータスとリセットステータスを確認する場所
ツール接続ステータス (sn_devops_tool_connection_status) テーブルには、ツールスロットリング関連情報が含まれています。ツール、スロットルリセット時間、スロットルアクティブなどの列があり、スロットル下にあるツール、このスロットルがリセットされるタイミング、スロットルがアクティブかどうかを示します。
REST_RATE_LIMIT_ERRORは DevOps エラーログに記録されます。また、スロットル下のツールは [スロットル済み] ステータスになります。