You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建满足双条件触发的GCP基于日志的告警?

GCP基于日志的告警配置方案

需求说明

需创建满足以下两个条件的告警:

  • 最近未收到新的日志消息(示例中为超过20分钟)
  • 最后一条日志消息包含特定字符串(示例中为alive and kicking)

示例场景:

当最后一条日志包含alive and kicking且已超过20分钟未更新时触发告警;若后续收到含alive but inactive的日志,告警不再触发。对应示例日志,告警应在16:40触发,17:00之后停止触发。

示例日志内容:

2022-12-29 15:00 i'm alive but inactive.  don't send an alert.
2022-12-29 15:10 i'm alive but inactive.  don't send an alert.
2022-12-29 15:20 i'm alive but inactive.  don't send an alert.
2022-12-29 16:00 i'm alive and kicking.  send an alert if you don't hear from me in the next 20 minutes.
2022-12-29 16:10 i'm alive and kicking.  send an alert if you don't hear from me in the next 20 minutes.
2022-12-29 16:20 i'm alive and kicking.  send an alert if you don't hear from me in the next 20 minutes.
2022-12-29 17:00 i'm alive but inactive.  don't send an alert.
2022-12-29 17:10 i'm alive but inactive.  don't send an alert.
2022-12-29 17:20 i'm alive but inactive.  don't send an alert.

配置步骤

1. 编写日志查询语句

使用GCP日志查询语言,筛选出符合条件的日志:

# 替换为你的资源类型、项目ID和日志名称
resource.type="your-resource-type"
logName="projects/your-project-id/logs/your-log-name"
| order_by timestamp desc
| limit 1
| where textPayload contains "alive and kicking"
| where timestamp < timestamp_sub(current_timestamp(), interval 20 minute)

查询逻辑说明:

  • 按时间倒序排序,仅保留最后一条日志
  • 检查该日志的内容是否包含目标字符串
  • 验证该日志的时间是否早于当前时间减去20分钟(即超过20分钟无新日志)

2. 创建告警策略

  • 进入GCP控制台,导航至监控 > 告警 > 创建告警策略
  • 选择日志匹配作为数据源,粘贴上述查询语句
  • 设置触发条件:当查询存在匹配结果时触发告警
  • 配置通知渠道:添加邮件、Slack等你需要的通知方式
  • 填写告警名称(如「服务存活状态异常告警」)和描述信息

3. 逻辑验证

  • 16:20收到最后一条含alive and kicking的日志,16:40时,当前时间减20分钟为16:20,查询返回该日志,触发告警
  • 17:00收到含alive but inactive的日志,此时取最后一条日志不包含目标字符串,查询无匹配结果,告警自动恢复,不再触发

内容的提问来源于stack exchange,提问作者Jayen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:35:25