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

如何配置Datadog告警,监控未正常结束的后台进程?

在Datadog中为进程启停事件配置超时告警

我们的后端应用运行多个带有独立id的进程,每个进程会向Datadog发送process.started和process.finished两类事件。需要在以下两种场景触发告警:

  1. 同一进程的process.finished与process.started时间差超过1分钟
  2. 进程发送process.started后,未触发任何process.finished事件

一、处理进程运行超时场景(时间差>1分钟)

核心是通过进程id关联同一进程的两类事件并计算时间差:

  • 在Datadog中创建自定义告警规则,使用事件关联语法关联同id的started和finished事件
  • 用Datadog查询语法计算时间差,示例逻辑如下:
    events("process.started").by("id")
    .join(events("process.finished").by("id"), on: "id")
    .as(start_event, finish_event)
    .where(finish_event.timestamp - start_event.timestamp > 60000)
    
  • 将该查询设置为告警触发条件,当查询返回匹配结果时,触发告警通知

二、处理未触发process.finished事件的场景

需要追踪已启动但未结束的进程,并计算从启动到当前的时间差:

  • 利用Datadog的缺失事件检测功能:
    1. 先创建基于process.started事件的查询,按id分组记录每个进程的启动时间戳
    2. 配置检测规则:当某一id对应的process.started事件触发后,超过1分钟仍未出现同id的process.finished事件,则触发告警
    3. 时间差由Datadog自动计算,逻辑为当前时间减去process.started的事件时间戳
  • 也可以用查询语句直接实现,示例如下:
    events("process.started").by("id")
    .where(not events("process.finished").by("id").since(last(process.started.timestamp)))
    
    给这个查询设置阈值为“超过60秒未出现对应finished事件”即可

关键注意事项

  • 确保两类事件的id字段完全一致,否则无法准确关联同一进程的事件
  • 可根据业务需求灵活调整告警的时间阈值
  • 配置完成后,建议手动模拟场景(比如触发started后不触发finished)验证告警是否正常触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:36:00