Пользовательские квоты StackDriver
Я использую клиентскую библиотеку Java MetricServiceClient
для получения временных рядов StackDriver. Я выполняю проверку подлинности с использованием пользовательского маркера oauth (у этого пользователя есть доступ к нескольким проектам), но, похоже, существует некоторая глобальная квота для нескольких проектов, потому что, когда я выбираю только один или два проекта за раз, у меня нет регулирования, но когда Я получаю четыре или пять разных проектов одновременно, меня начинают душить ошибки, подобные следующим:
io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: Insufficient tokens for quota 'DefaultGroup' and limit 'USER-100s' of service 'monitoring.googleapis.com' for consumer 'project_number:764086051850'.
Я подтвердил это, чередуя, какие проекты выбираются, так что я могу сказать, что это не какой-то один проект - все они начинают получать ограничения по ставке. Еще одна странная вещь - то, что номер_проекта в сообщении об ошибке не соответствует ни одному проекту, который я получаю, или даже не имею к нему доступа - для меня это бессмысленно.
Похоже, что это квота на количество запросов в 100 секунд, но у меня установлено значение 10000 для всех проектов, и я не выполняю почти такое количество запросов, как подтверждает исторический график квот в веб-консоли.
Действительно ли существует какая-то глобальная квота, которая применяется ко многим проектам, и если да, есть ли способ обойти ее? Мне гораздо проще иметь одного пользователя с доступом к нескольким проектам вместо того, чтобы создавать для них токены учетных записей служб.
1 ответ
Квота на токены, которую вы вводите, предназначена для пользователей, использующих учетные данные приложения по умолчанию (которые используют общий проект gcloud для выставления счетов), хотя она существует для быстрого запуска и запуска пользователей, но не рекомендуется для реального производственного использования. Поэтому настоятельно рекомендуется использовать правильную учетную запись службы, привязанную к проекту пользователя, и решить проблему.