活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 当事件发生在生产者中时。 |
| received_at | Timestamp | 当摄取服务接受事件时。 |
| source | Utf8 | 稳定的生产者或工作流程名称。 |
| environment | Utf8 | 部署环境。 |
DataFusion SQL
复制查询
sql
SELECT
source,
MAX(timestamp_utc) AS latest_event_at,
MAX(received_at) AS latest_received_at,
date_part('second', now() - MAX(received_at)) / 60.0
AS minutes_since_receive,
AVG(date_part('second', received_at - timestamp_utc)) / 60.0
AS average_delivery_delay_minutes
FROM telemetry_events
WHERE received_at >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY source
ORDER BY minutes_since_receive DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
自最新收到事件以来的分钟数
尽管正常的交付延迟很小,但计费同步已过时。
billing_sync
48 min
comparison 1.4 min
api_gateway
1 min
comparison 0.1 min
queue_workers
1 min
comparison 0.8 min
| source | latest_event_at | latest_received_at | minutes_since_receive | average_delivery_delay_minutes |
|---|---|---|---|---|
| billing_sync | 2026-07-27 12:11 | 2026-07-27 12:12 | 48 | 1.4 |
| api_gateway | 2026-07-27 12:59 | 2026-07-27 12:59 | 1 | 0.1 |
| queue_workers | 2026-07-27 12:58 | 2026-07-27 12:59 | 1 | 0.8 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1MAX(received_at) 测量每个源是否仍在传送数据。
- 2received_at 和 timestamp_utc 之间的平均差异测量传输延迟与源静默分开。
- 3生产过滤器可防止开发流量使已停止的生产源看起来正常。
需要决定的边缘情况
- 每天仅发出一次的源需要与 API 源不同的新鲜度阈值。
- 生产者时钟偏差会使交付延迟为负值;监视并纠正时钟同步。
- 24 小时回溯无法返回静默时间超过窗口时间的源。保留预期来源注册表以进行缺勤监控。
推荐仪表板
- 条形图:minutes_since_receive(按来源)
- 趋势:按来源划分的平均交付延迟
- 表:当前窗口中缺少的预期来源
让查询示例发挥作用
相关埋点和指南
定义源数据
此分析的事件模式
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。