如何在 Google Cloud Function 超时时收到通知?

Jos*_*rdo 10 google-cloud-platform google-cloud-functions

我已经在 Stackdriver 中启用了通知,并且我收到了异常情况的通知电子邮件。

问题是我没有收到任何超时通知。

当 Google Cloud Function 因超时而终止时,是否有任何方法可以收到通知?

小智 6

即使超时未报告为错误,您仍然可以为超时日志条目设置指标,然后在指标超过零阈值时发出警报。

  1. 从 GCP 控制台,转到Stackdriver Logging查看器 (/logs/viewer),并构建如下过滤器:
resource.type="cloud_function"
resource.labels.function_name="[YOUR_FUNCTION_NAME_HERE]"
"finished with status: 'timeout'"
Run Code Online (Sandbox Code Playgroud)

第三行是“包含”文本过滤器。超时消息始终包含此文本。您可以根据需要添加其他内容或进行修改。

  1. 单击创建度量。为指标命名为“函数超时”,并确保类型为计数器。您可以将可选字段留空。提交表单,您应该被重定向到 /logs/metrics。

  2. User-defined Metrics 下,您应该会看到您的新指标。单击右侧的三点按钮并选择Create alert from metric

  3. 为警报策略指定一个有意义的名称。在目标下,您可能还会收到一些关于无法生成线图的红色文本。单击有用的链接将对齐器切换为均值,将聚合器切换为无。然后在“配置”下,将条件设置为“高于”,将阈值设置为“0”,并设置为“最新值”。

  4. 根据需要继续构建通知和文档。确保添加通知渠道,以便收到警报。UI 应包括每个字段的提示。

更多细节在官方文档中

  • 我删除了 `resource.labels.function_name="[YOUR_FUNCTION_NAME_HERE]"` 行,以便它适用于所有已部署的 Google Cloud Functions。您仍然可以恢复相同的数据,因为资源类型将 funciton_name 作为标签。缺点是日志量较高,但通常我希望在我的任何功能超时时收到警报。 (3认同)