私は、JavaクライアントライブラリのMetricServiceClient
を使ってStackDriverの時系列データを取得しています。私はユーザーoauthトークン(このユーザーは複数のプロジェクトにアクセスできます)を使用して認証していますが、一度に1つまたは2つのプロジェクトしか取得できないときには調整がないため、複数のプロジェクトにわたってグローバルなクォータがあるようです私は、次のようなエラーで絞る取得を開始、一度に4〜5種類のプロジェクトをフェッチ:StackDriver User Quotas
io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: Insufficient tokens for quota 'DefaultGroup' and limit 'USER-100s' of service 'monitoring.googleapis.com' for consumer 'project_number:764086051850'.
私はそれがどのないと言うことができるように、私はプロジェクトがフェッチされている交互にすることによって、これを確認しています単一のプロジェクト - 彼らはすべてレート制限を取得し始める。もう1つの奇妙なことは、エラーメッセージのproject_numberが、取得しようとしているプロジェクトに対応していないか、アクセスできているということです。それは意味がありません。
これは100秒あたりのリクエスト数の割り当て量ですが、すべてのプロジェクトで10,000に設定されていますが、Webコンソールのクォータ履歴グラフで確認されているように、
実際には複数のプロジェクトに適用されるいくつかのグローバルクォータがありますか?その場合、回避する方法はありますか? 1人のユーザーに複数のプロジェクトにアクセスできるようにすることは、サービスアカウントのトークンをすべて作成する必要はなく、はるかに簡単です。
このクォータエラーは引き続き表示されますか?このエラーが発生している間にウェブコンソールにクォータ履歴グラフを添付できますか? –
私は単一のユーザーアカウントの使用をやめ、プロジェクトごとに別々のサービスアカウントキーを使用しました。その当時からチャートは残っていませんでしたが、APIクォータのプロジェクトチャートは、クォータが指定した分よりはるかに低くなっています(私は10000秒/ 100秒近くはどこにもありませんでした)。サービスアカウントを使用して同じ要求動作を行ったとき、プロジェクトごとに同じ数のリクエストを作成しても、調整はできませんでした。私は単一のユーザーアカウントを使用していたので、調整はクロスプロジェクトで行われていたようです。何か案は? – keitwb