2017-11-05 14 views
0

私は、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人のユーザーに複数のプロジェクトにアクセスできるようにすることは、サービスアカウントのトークンをすべて作成する必要はなく、はるかに簡単です。

+0

このクォータエラーは引き続き表示されますか?このエラーが発生している間にウェブコンソールにクォータ履歴グラフを添付できますか? –

+0

私は単一のユーザーアカウントの使用をやめ、プロジェクトごとに別々のサービスアカウントキーを使用しました。その当時からチャートは残っていませんでしたが、APIクォータのプロジェクトチャートは、クォータが指定した分よりはるかに低くなっています(私は10000秒/ 100秒近くはどこにもありませんでした)。サービスアカウントを使用して同じ要求動作を行ったとき、プロジェクトごとに同じ数のリクエストを作成しても、調整はできませんでした。私は単一のユーザーアカウントを使用していたので、調整はクロスプロジェクトで行われていたようです。何か案は? – keitwb

答えて

0

Application Default Credentials(請求用に共有gcloudプロジェクトを使用しているユーザー向け)の場合はですが、これはユーザーを素早く動かすために存在しますが、実稼働環境での使用はお勧めしません。したがって、ユーザーのプロジェクトにバインドされた適切なservice accountを使用することを強くお勧めします。