本頁說明如何設定每日限制,以及監控進行中的 EECU 時間,以控管 Earth Engine 的運算成本。
限制每日 EECU 時間
如要控管 Earth Engine 費用,您可以更新下列 Cloud 配額,限制專案每日可消耗的 EECU 時間量:
Earth Engine compute time (EECU-time) per day in seconds
:專案層級的配額,可限制專案中所有使用者的 EECU 總時數。
如要進一步瞭解可設定的 Earth Engine 配額,請參閱「Earth Engine 配額」。
設定每日上限
您可以在 Google Cloud 控制台的「配額與系統限制」頁面中查看及編輯配額。調整配額後,變更會在幾分鐘內生效。如要設定或更新每日使用時間上限,請按照下列步驟操作:
- 確認您在所選專案中擁有「變更專案配額的權限」。
- 前往 Google Cloud 控制台的「配額」頁面。
- 在「Filter」(篩選器) 搜尋框中,使用「Metric」(指標) 篩選器來篩選
earthengine.googleapis.com/daily_eecu_usage_time
。如果沒有看到Earth Engine compute time (EECU-time) per day in seconds
配額,請確認您已為所選專案啟用 Earth Engine API。 - 按一下三點選單中的「編輯配額」。
- 如果已勾選「無限制」核取方塊,請取消勾選。
- 在「New value」(新值) 欄位中,輸入所需的 EECU 秒數限制。按一下「提交要求」。
如要進一步瞭解如何查看及管理配額,請參閱「查看及管理配額」。
傳回的錯誤訊息
設定每日限制後,如果超過限制,Earth Engine 會傳回下列錯誤訊息:
您的用量已超過「earthengine.googleapis.com/daily_eecu_usage_time」的自訂配額,管理員可以在 Google Cloud 控制台中調整配額:https://console.cloud.google.com/quotas/?project=_.
超出配額後,Earth Engine 要求就會失敗,直到隔天配額重設,或是管理員提高上限為止。
精細的監控和警示
如果需要比每日上限更精細地控管及監控費用,下列做法需要更多設定,但可啟用workload_tag
和批次工作層級的快訊和取消功能。
這些配方會使用針對執行中要求顯示的 EECU 時間監控功能。如要進一步瞭解 Cloud Monitoring 中 EECU 時間的報告進度,請參閱監控用量指南。
設定警告
您可以在 Cloud Monitoring 中設定快訊,在指標達到特定門檻時收到警告。Cloud Monitoring 警告系統非常靈活,我們在此收集了幾種最愛的食譜,但你也可以根據自己的需求,使用自訂設定烹調。
配方:workload_tag
使用情況的即時通訊通知
這個範例說明如何設定即時通訊通知 (例如 Google Chat 訊息或 Slack 訊息),以便在特定workload_tag
的 Earth Engine 運算用量超過門檻時收到通知。舉例來說,如果有一組匯出工作會為生產服務建立資料,且您希望系統在這些工作耗用的 EECU 時間總量超過特定值時通知您,這項功能就非常實用。
- 前往 Cloud 控制台的「Cloud Monitoring」專區,然後點選「Alerting」(快訊) 頁面。
- 選擇「建立政策」即可設定新的快訊政策。
- 選取指標:
- 處理中的 EECU 秒數 代表待處理 (尚未成功) 的運算秒數。
- 您可能需要取消選取「有效」篩選條件,才能查看指標。
- 新增篩選器:
- 使用
workload_tag == your_workload_tag_value
篩選特定工作負載標記。 - 使用
compute_type = batch
或compute_type = online
篩選特定類型的運算。
- 使用
- 選擇適當的「滾動視窗」值。如果不確定,請使用
5 min
。 - 從「滾動視窗函式」選單中選取「總和」。
- 選擇快訊觸發條件並為快訊命名。
- 選取通知管道。
- 在本食譜中,我們將從模式視窗選擇「管理通知管道」,然後「新增」,貼上 Google Chat 的聊天室 ID。查看對話時,您可以在 Gmail 或 Chat 頁面的網址中找到這個 ID。
- 如果使用 Google Chat,您也需要輸入
@Google Cloud Monitoring
並選取應用程式,將 Alerting 應用程式新增至 Space (如果貴機構允許)。
- 選擇相關政策和嚴重程度標籤。
- 撰寫簡短的說明文件片段。
- 發布新的快訊政策!
設定完成後,只要專案超出門檻,您就會在聊天室收到快訊。
食譜:接收電子郵件快訊,瞭解 EECU 時間總計
請按照即時通訊通知的食譜操作,但要進行兩項變更:
- 略過新增
workload_tag
篩選器的步驟,即可查看所有值。 - 選取通知管道時,請新增電子郵件地址,而非設定即時通訊管道。
快訊延遲和時間
請注意,監控報表的傳播會稍微延遲,因此您不應期待即時通知。
取消耗用大量資源的工作
如果設有上限,您可以使用 Earth Engine API 定期檢查待處理工作清單,並要求取消任何超出 EECU 秒數上限的執行中工作。
食譜:在筆記本或本機 Python 殼層中執行程式碼片段
eecu_seconds_limit = 50 * 60 * 60 # 50 hours
print("Watching for operations to cancel...")
while(True):
for op in ee.data.listOperations():
if op['metadata']['state'] == 'RUNNING':
if op['metadata'].get('batchEecuUsageSeconds', 0) > eecu_seconds_limit:
print(f"Cancelling operation {op['name']}")
ee.data.cancelOperation(op['name'])
time.sleep(10) # 10 seconds