GCP 基于日志的监控:未收到日志时触发警报

Posted

技术标签:

【中文标题】GCP 基于日志的监控:未收到日志时触发警报【英文标题】:GCP Logs-Based Monitoring: Trigger an alert when no logs are received 【发布时间】:2021-05-14 15:02:56 【问题描述】:

我有一个应用程序,我正在为其设置基于日志的监控。应用程序将在完成特定任务时记录。我想确保应用程序至少每 6 小时完成一次。

我已尝试通过将监控配置为在指标在给定时间内保持低于 1 时触发警报来复制此规则。

不幸的是,当基于日志的指标没有收到任何日志时,它似乎表现出“没有数据”而不是值 0。

是否可以将未收到日志时的段视为 0 以便触发警报?

我的指标图的屏幕截图:

警报定义的屏幕截图: 您可以看到我们收到了一个时间范围内的日志,但随后该行消失并且没有触发警报。

【问题讨论】:

为什么不创建一个 2 个日志警报指标,这样总会收到一个数据,然后为每个创建 labels? 【参考方案1】:

尝试使用 absent_for 和基于 MQL 的警报。

absent_for 表操作生成一个表,其中包含两个值列,活动和信号。当表输入中缺少数据时,活动列为true,否则为false。这对于创建条件查询很有用,用于在输入缺失时发出警报。

例子:

 fetch  gce_instance :: compute.googleapis.com/instance/cpu/usage_time
  | absent_for 8h

【讨论】:

获取路径当然是您自己的日志记录指标。但是由于截图上的指责,我以gce cpu usage_time为例。 这正是我需要的,谢谢!我没有意识到 MQL 的功能不仅仅是 UI 上显示的功能。

以上是关于GCP 基于日志的监控:未收到日志时触发警报的主要内容,如果未能解决你的问题,请参考以下文章

当没有数据上传到 GCP 中的 BigQuery 表时创建警报

监控 GKE 上运行的 Cronjob

AWS 为 Lambda 创建 Cloudformation 日志警报

通过监控一天内 API 请求计数/使用的总和来设置 GCP 警报?

根据检查文件中的前一个日志行监控警报

使用Log4J监控系统日志邮件警报