[英]Google Analytics realtime API raises Rate Limit Exceeded on Cloud Functions
我正在使用google-api-python-client
創建一個 Cloud Function,它每分鍾向 Google Analytics Realtime API 發出一個請求。 它運行了很長時間。
這是使用的代碼:
from googleapiclient.discovery import build
service = build('analytics', 'v3', credentials=credentials)
service.data().realtime().get(
ids=f'ga:{view_id}',
metrics='rt:pageviews',
dimensions='rt:deviceCategory,rt:minutesAgo',
quotaUser='my-function'
).execute(num_retries=3)
今天從 UTC-3 上午 10 點開始,我遇到了這個錯誤:
配額錯誤:最近失敗的報告 API 請求數太高,請實施指數回退。
根據文檔,限制是:
- 每個項目每天 50,000 個請求,可以增加。
- 每個 IP 地址每秒 10 次查詢 (QPS)
在開發者控制台中,Google Analytics API 指標在過去 7 天內有 25k 次請求,平均 0.05/s,錯誤開始時的峰值 0.20/s。
這些功能部署在us-east1
中。 我在us-east4
中部署了其他實例並且運行良好。 所以我認為限制是在us-east1
中使用的 IP 地址,與其他用戶共享。
有辦法隔離我的項目的配額嗎? 我嘗試了quotaUser
參數,但似乎沒有效果。
更新:區域us-east4
開始引發相同的錯誤,所以我切換到us-central1
,它現在工作正常。
UTC 時間 12 月 23 日 16:00 更新:問題又回來了。 API 請求再次返回相同的錯誤。
UTC 時間 12 月 22 日 18:56 更新:從 1 小時前開始,報告 API 開始再次響應查詢。 大約 15 分鍾前,實時 API 也再次響應。 在他們開始工作之前,這些調用不再返回錯誤,而是請求繼續“永遠”加載。
從 6 小時前開始,我在直接從我自己的服務器(在柏林)使用 Google Analytics API 時隨機遇到了同樣的問題。 我已經嘗試了以下方法來解決這個問題:
為什么我高度懷疑這是谷歌分析方面的問題(你/我無法真正解決這個問題):
我從谷歌分析 API 得到的確切錯誤:
"error": {
"code": 403,
"message": "Quota Error: Number of recent failed reporting API requests is too high, please implement exponential back off.\nSee developer documentation for details at https://developers.google.com/analytics/devguides/reporting/core/v4/limits-quotas#reporting_apis_request_errors",
"errors": [
{
"message": "Quota Error: Number of recent failed reporting API requests is too high, please implement exponential back off.\nSee developer documentation for details at https://developers.google.com/analytics/devguides/reporting/core/v4/limits-quotas#reporting_apis_request_errors",
"domain": "usageLimits",
"reason": "rateLimitExceeded"
}
]
}
我們經歷了同樣的事情,它似乎時不時地出現和解決,而沒有來自 Google Analytics 的任何信號或跡象。 它從 12 月 21 日開始。 我們嘗試減少呼叫量(每分鍾一次減少一分鍾),但這似乎無濟於事。
我們使用的是實時 API 的 v3,但我們確實在錯誤日志中看到了對 V4-api 的一些引用:
也許這可以幫助您找到原因。
我也有同樣的問題。 我認為主要原因是谷歌服務器端更多的請求超時(嘗試使用 5-10 個請求的API 資源管理器)。 所有超時的請求都算作FAILED,然后你得到: Quota Error: Number of recent failed reporting API requests is too high, please implement exponential back off...
我保存了一些日志,我看到了一些奇怪的事情:大多數“超時請求”在 144 秒、240 秒或 480 秒后仍然收到響應。 我仍然不知道這些神奇的數字是什么,但它看起來像一個模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.