Resource has been exhausted check quota что это значит
Почему отображается сообщение «Ресурс исчерпан», хотя использование находится в пределах квоты?
Проблема
Я использую Google Sheets API v4 из node.js (облачные функции для Firebase) через googleapis npm для записи в Google Таблицы.
Спорадическое получение этой ошибки:
Однако здесь не говорится, какая именно квота достигнута.
В тот конкретный момент действительно было много одновременных выполнений функций, которые записывались в Google Таблицы, и некоторые из них терпели неудачу:
Консоль GCP
https://console.cloud.google.com/apis/api/sheets.googleapis.com/quotas показывает, что использование на момент выдачи находится в пределах квоты:
Предположение
Я подозреваю, что могу достичь предела квоты «Запросы на запись за 100 секунд на пользователя «… потому что диаграмма «трафик по коду ответа» показывает 2,03 запроса / с, что дает 203 запроса за 100 секунд, и все из одного учетные данные:
Однако «Использование квоты на пользователя не отображается», и ни сообщение об ошибке, ни консоль GCP не дают четкого указания на то, какая квота фактически исчерпана.
Кроме того, этому предположению есть контраргумент: общее количество «запросов за 100 секунд» в приведенной выше таблице ниже 100, и я предполагаю, что «количество запросов за 100 секунд на пользователя » не может быть больше общего.
Вопросы
Обновление на основе комментария
Вот ссылки на реальный репозиторий кода.
Это не минимальный воспроизводимый пример, это фактический используемый код. Я не думаю, что в данном случае стоит время приводить воспроизводимый пример, потому что вопрос в первую очередь связан с интерпретацией сообщения об ошибке и выяснением того, какой конкретный предел квоты был достигнут.
Why getting “Resource has been exhausted” although the usage is within the quota limit?
The problem
I’m using Google Sheets API v4 from node.js (Cloud Functions for Firebase) via googleapis npm package to write to the Google Sheets.
Getting this error sporadically:
It doesn’t say which particular quota is reached, though.
At that particular moment, indeed, there were many concurrent function executions that write to the Google Sheets, and several of them failed:
GCP console
https://console.cloud.google.com/iam-admin/quotas says that the quota statuses are fine:
https://console.cloud.google.com/apis/api/sheets.googleapis.com/quotas shows that the usage at the moment of issue is within the quota limits:
The guess
I’m suspecting that I may reach the “Write requests per 100 seconds per user” quota limit… because the “traffic by response code” chart shows 2.03 reqs/sec, which gives 203 requests per 100 seconds, and all of them from one credential:
However “Per-user quota usage is not displayed”, and neither error message or GCP console give definite indication on what is the actual quota being exhausted.
Also, there is a counter-argument to this guess: total “requests per 100 seconds” in the chart above is below 100, and I presume that “requests per 100 seconds per user” cannot be higher than total.
The questions
Update based on the comment
Here are the links to the actual code repository.
This is not a Minimal, Reproducible Example, this is the actual code used. I don’t think providing a reproducible example is worth time in this case, because the question is primarily related to interpreting the error message and figuring out which particular quota limit has been reached.
YouTube Data API v3 returns 429 Resource has been exhausted, haven’t used nearly full quota
I’m using the YouTube Data API v3 to insert playlists and playlist items.
Today I created 8 Playlists and 187 videos which I believe is 9,400 «units» of quota over about 90 minutes and got this message.
Here’s what’s listed on the Quota page in cloud console for this key which seems to have enough overhead for this.
Then I got to thinking perhaps this is a «per user» limit being reached.
And here’s what’s listed on the Quota page in cloud console for this key.
Quota | Limit |
---|---|
Queries per minute per user | 180,000 |
Queries per minute | 1,800,000 |
And according to the «Queries Per Minute» report in the Dev platform our queries per minute maxed out at 1,600 and the graph for «Quota Exceeded» is empty.
So my first question is, are these numbers accurate? How could the per user or per minute quotas be so much higher than the daily quota?
Second question is, if these numbers are not accurate, where can the accurate numbers for «Queries per minute per user» and «Queries per minute» be found?
Lastly, is there a way to hit an endpoint to get more precise quote usage data or a more precise error message?
Thank you for any guidance here, Todd
1 Answer 1
TOO_MANY_REQUESTS (429)
rateLimitExceeded Too many requests have been sent within a given time span.
Thus the API is signaling you that you’ve issued too many API requests in a small amount of time.
An accustomed solution to this is to have your program catch these kind of errors for to implement exponential backoff retrying the culprit API call.
Addendum
According to Google staff, you have to wait for a while before you’re allowed to create new playlists:
Status: Won’t Fix (Intended Behavior)
Creating high volumes of playlists via the API in a short amount of time may result in this error. The length of time to wait is variable. You may wish to use a method such as exponential backoff or queuing for a retry later in cases where you’re attempting to fulfill a request on behalf of a user.
Do note that you hit an undocumented limit of YouTube Data API. Unfortunately, this API has quite a few of them. Stackoverflow and Google’s own issue tracker did uncovered some of those limits.
В чем причина ошибки «RESOURCE_EXHAUSTED»?
У меня есть WordPress блог. Когда я вошел в панель управления, в верхней части было выделено следующее исключение:
Из сообщения об исключении я могу сделать вывод, что это связано с Google Analytics и ее API.
Однако мне любопытно узнать, что могло послужить причиной этого исключения. Кроме того, какие шаги я могу предпринять, чтобы избежать таких исключений?
3 ответа
Манодж дал вам техническую информацию. Я собираюсь дать вам немного дополнительной информации и ответить на следующую часть вашего вопроса.
Однако мне любопытно узнать, что могло послужить причиной этого исключения. Кроме того, какие шаги я могу предпринять, чтобы избежать таких исключений?
Когда мы, как разработчики, хотим получить доступ к API Google, нам нужно зарегистрировать наше приложение в Google. Каждый API имеет свою квоту, которую разработчики должны отслеживать.
По умолчанию квота проекта для Google Analytics составляет 50000 запросов. Если у вас большое количество пользователей, делающих запросы, вы можете быстро исчерпать квоту. Например, квота на мое приложение составляет 500000, на которые работают мои пользователи, хотя примерно 70% от этого каждый день. После того, как вы введете эту квоту, ничего не поделаешь, приложение будет заблокировано до тех пор, пока квота не будет сброшена в полночь на запад по времени США.
Что можно сделать, чтобы этого избежать. Прежде всего, автору плагина необходимо запросить дополнительную квоту, чтобы они могли лучше обслуживать своих пользователей, они также должны периодически проверять это, чтобы пользователи никогда не видели ее. Вероятно, им потребуется месяц, чтобы получить одобрение на дополнительную квоту. Как пользователь, вы можете помочь, только делая запросы, которые вам нужно сделать, не используя большую часть ежедневной квоты.
Как сказал Маной, лично вы ничего не можете сделать, чтобы это исправить, вам нужно связаться с автором плагина.
Это было вызвано тем, что вы используете плагин WordPress под названием «Google Analytics», который является одним из многих плагинов, которые вы можете использовать для простой вставки кода отслеживания аналитики в источник вашей страницы. Вы можете отключить его и установить другой плагин, который делает это без ошибок.
Кроме того, если этот плагин синхронно извлекает данные с серверов Google при каждом запросе, он без необходимости замедляет время загрузки вашей страницы. Нет причин, по которым плагин должен это делать.
Быстрый поиск показал, что плагин аналитики, используемый вашим блогом, может использовать больше посещений и квоту, допустимую Google Analytics API.
здесь вы можете найти описание ошибки и ограничения квот здесь. Пожалуйста, свяжитесь с разработчиком плагина, чтобы разобраться в этом.
Почему отображается сообщение «Ресурс исчерпан», хотя использование находится в пределах квоты?
Проблема
Я использую Google Sheets API v4 из node.js (облачные функции для Firebase) через googleapis npm для записи в Google Таблицы.
Спорадическое получение этой ошибки:
Однако здесь не говорится, какая именно квота достигнута.
В тот конкретный момент действительно было много одновременных выполнений функций, которые записывались в Google Таблицы, и некоторые из них терпели неудачу:
Консоль GCP
https://console.cloud.google.com/apis/api/sheets.googleapis.com/quotas показывает, что использование на момент выдачи находится в пределах квоты:
Предположение
Я подозреваю, что могу достичь предела квоты «Запросы на запись за 100 секунд на пользователя «… потому что диаграмма «трафик по коду ответа» показывает 2,03 запроса / с, что дает 203 запроса за 100 секунд, и все из одного учетные данные:
Однако «Использование квоты на пользователя не отображается», и ни сообщение об ошибке, ни консоль GCP не дают четкого указания на то, какая квота фактически исчерпана.
Кроме того, этому предположению есть контраргумент: общее количество «запросов за 100 секунд» в приведенной выше таблице ниже 100, и я предполагаю, что «количество запросов за 100 секунд на пользователя » не может быть больше общего.
Вопросы
Обновление на основе комментария
Вот ссылки на реальный репозиторий кода.
Это не минимальный воспроизводимый пример, это фактический используемый код. Я не думаю, что в данном случае стоит время приводить воспроизводимый пример, потому что вопрос в первую очередь связан с интерпретацией сообщения об ошибке и выяснением того, какой конкретный предел квоты был достигнут.