跳转到内容
Telemetry
结构化事件 SQL查询示例

检测丢失的服务心跳

查找在故障事件出现之前停止报告的服务、工作人员或计划任务。

入门service_heartbeats已审核 2026-07-27测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

哪些预期遥测源已停止发送心跳?

沉默通常是进程崩溃或摄取路径损坏的第一个症状。此查询将每个源的最新检测信号与预期报告间隔进行比较。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp当观察到心跳时。
service_nameUtf8稳定的来源或服务名称。
environmentUtf8制作、演出或开发。
statusUtf8在心跳时健康或退化。
DataFusion SQL

复制查询

sql
SELECT
  service_name,
  environment,
  MAX(timestamp_utc) AS last_seen_at,
  COUNT(*) AS heartbeats_in_window
FROM service_heartbeats
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'production'
GROUP BY service_name, environment
HAVING MAX(timestamp_utc) < now() - INTERVAL '10 minutes'
ORDER BY last_seen_at ASC;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

生产来源已超过心跳期限

应首先调查最旧的 last_seen_at 值。

service_nameenvironmentlast_seen_atheartbeats_in_window
billing_syncproduction2026-07-27 15:04:00Z132
email_workerproduction2026-07-27 15:11:00Z139

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Production sources past the heartbeat deadline:来自 Detect Missing Service Heartbeats 示例结果的合成 last_seen_at 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, illustrative 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1MAX(timestamp_utc) 返回每个源的最新观察到的心跳。
  2. 2HAVING 分组后进行过滤,仅保留最新事件早于允许的静默窗口的服务。
  3. 3该计数提供了有用的上下文:在整个回溯窗口中没有事件的源可能需要预期源表,而不是此仅事件查询。

需要决定的边缘情况

  • 从未发出过心跳的源不会出现。当完整覆盖很重要时,维护预期的源注册表。
  • 将阈值设置为高于正常间隔加上摄取和调度抖动。
  • 将计划的维护人员或残疾工人分开,以避免吵闹的警报。

推荐仪表板

  • 统计:超过截止日期的来源数量
  • 表:last_seen_at by service_name
  • 折线图:按来源划分的心跳量

警报指导

错过两到三个预期间隔后发出警报,并包含上次查看时间和运行手册链接。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥