配置提醒
为了控制 Earth Engine 资源用量和费用,您可以在 Cloud Monitoring 中配置提醒,以便在指标达到特定阈值时收到提醒。
Cloud Monitoring 提醒系统非常灵活。我们在这里收集了一些我们最喜欢的食谱,但您也可以随意尝试符合自己需求的自定义配置。
方案:针对 workload_tag
使用情况发送聊天通知
此示例展示了如何在给定 workload_tag
的 Earth Engine 计算用量超出阈值时关联聊天通知(例如 Google Chat 消息或 Slack 消息)。如果您有一组用于为生产服务创建数据的导出任务,并且希望在它们总计消耗的 EECU 时间超过一定量时收到通知,这可能会很有用。
- 访问 Cloud 控制台的“Cloud Monitoring”部分中的提醒页面。
- 选择“创建政策”以配置新的提醒政策。
- 选择指标:
- 正在进行的 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
并选择相应应用,以将提醒应用添加到聊天室(如果贵组织允许)。
- 选择相关的政策和严重性标签。
- 编写一段简短的文档段落。
- 发布新的提醒政策!
设置完成后,每当您的项目超出阈值时,您都会在聊天室中收到提醒。
方案:针对正在进行的 EECU 总时间接收电子邮件提醒
按照聊天通知的做法,但进行以下两项更改:
- 跳过添加
workload_tag
过滤条件的步骤,以便查看所有值。 - 选择通知渠道时,请改为添加您的电子邮件地址,而不是配置聊天渠道。
提醒延迟时间和时间安排
请注意,监控报告的传播会略有延迟,因此您不应期望立即收到通知。
取消占用大量资源的任务
设置限制后,您可以使用 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