费用控制

配置提醒

为了控制 Earth Engine 资源用量和费用,您可以在 Cloud Monitoring 中配置提醒,以便在指标达到特定阈值时收到提醒。

Cloud Monitoring 提醒系统非常灵活。我们在这里收集了一些我们最喜欢的食谱,但您也可以随意尝试符合自己需求的自定义配置。

方案:针对 workload_tag 使用情况发送聊天通知

此示例展示了如何在给定 workload_tag 的 Earth Engine 计算用量超出阈值时关联聊天通知(例如 Google Chat 消息或 Slack 消息)。如果您有一组用于为生产服务创建数据的导出任务,并且希望在它们总计消耗的 EECU 时间超过一定量时收到通知,这可能会很有用。

  1. 访问 Cloud 控制台的“Cloud Monitoring”部分中的提醒页面
  2. 选择“创建政策”以配置新的提醒政策。
  3. 选择指标:
    • 正在进行的 EECU 秒数表示待处理(尚未成功)的计算秒数。
    • 您可能需要取消选择“有效”过滤条件,才能看到该指标。
  4. 添加过滤条件:
    • 使用 workload_tag == your_workload_tag_value 过滤出特定的工作负载标记。
    • 使用 compute_type = batchcompute_type = online 过滤出特定类型的计算。
  5. 选择合适的“滚动窗口”值。如果您不确定,请使用 5 min
  6. 从“滚动窗口函数”菜单中选择“求和”。为提醒配置指标
  7. 选择提醒触发条件并为其命名。
  8. 选择通知渠道。
    • 在此方案中,我们将从模态窗口中选择“管理通知渠道”,然后选择“添加新渠道”,将 Google Chat 的聊天室 ID 粘贴到相应位置。查看聊天时,您可以在 Gmail 或 Chat 页面的网址中找到此 ID。
    • 如果您使用的是 Google Chat,则还需要输入 @Google Cloud Monitoring 并选择相应应用,以将提醒应用添加到聊天室(如果贵组织允许)。
  9. 选择相关的政策和严重性标签。
  10. 编写一段简短的文档段落。
  11. 发布新的提醒政策!

设置完成后,每当您的项目超出阈值时,您都会在聊天室中收到提醒。

方案:针对正在进行的 EECU 总时间接收电子邮件提醒

按照聊天通知的做法,但进行以下两项更改:

  1. 跳过添加 workload_tag 过滤条件的步骤,以便查看所有值。
  2. 选择通知渠道时,请改为添加您的电子邮件地址,而不是配置聊天渠道。

提醒延迟时间和时间安排

请注意,监控报告的传播会略有延迟,因此您不应期望立即收到通知。

取消占用大量资源的任务

设置限制后,您可以使用 Earth Engine API 定期检查待处理任务列表,并请求取消超出 EECU 秒数限制的任何正在运行的任务。

方法:在笔记本或本地 Python Shell 中运行代码段

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