活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 当消息来源称事件发生时。 |
| received_at | Timestamp | 当Telemetry收到事件时。 |
| source | Utf8 | 生产者或摄取路径。 |
| event_name | Utf8 | 稳定事件合约名称。 |
DataFusion SQL
复制查询
sql
SELECT
source,
event_name,
COUNT(*) AS events,
AVG(date_part('second', received_at - timestamp_utc)) / 60.0
AS average_delay_minutes,
approx_percentile_cont(
date_part('second', received_at - timestamp_utc) / 60.0,
0.95
) AS p95_delay_minutes,
SUM(CASE
WHEN received_at - timestamp_utc > INTERVAL '15 minutes' THEN 1
ELSE 0
END) AS events_over_15_minutes
FROM ingestion_events
WHERE received_at >= now() - INTERVAL '24 hours'
AND received_at >= timestamp_utc
GROUP BY source, event_name
HAVING COUNT(*) >= 20
ORDER BY p95_delay_minutes DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
p95 事件传递延迟
离线移动同步是实时的,但会定期传送旧事件,这些事件可能会更改最近的产品组。
mobile_offline_sync
96.2 min
billing_webhook
4.8 min
| source | event_name | events | average_delay_minutes | p95_delay_minutes | events_over_15_minutes |
|---|---|---|---|---|---|
| mobile_offline_sync | feature_used | 4,260 | 18.4 | 96.2 | 1,088 |
| billing_webhook | invoice_updated | 1,380 | 1.2 | 4.8 | 11 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1接收时间限制了操作窗口,而事件时间则衡量每个交付记录的陈旧程度。
- 2平均延迟和 p95 延迟将普遍延迟的生产者与长尾问题区分开来。
- 3明确的后期事件计数使影响清晰可见,而无需仅依赖百分位。
需要决定的边缘情况
- 时钟偏差会产生负延迟或过大的延迟;分别监控和纠正生产者时钟。
- 离线客户端可能需要传递较晚的数据,并且需要与服务器事件不同的阈值。
- 决定仪表板是否在迟到事件到达时重述最近的存储桶。
推荐仪表板
- 条形图:p95_delay_minutes(按来源)
- 趋势:按接收小时划分的延迟事件计数
- 表:最新的延迟事件以及源和事件时间
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。