活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 复制采样时间(UTC)。 |
| consumer_name | Utf8 | 稳定的副本、连接器或下游使用者名称。 |
| source_type | Utf8 | postgres_replica、cdc_pipeline 或其他受控源类型。 |
| region | Utf8 | 批准的部署区域。 |
| lag_seconds | Float64 | 观察到的时间滞后于源。 |
| replay_bytes_behind | Int64 | 等待重播或消耗的大约字节数。 |
| status | Utf8 | 健康、滞后、停滞或不可用。 |
| environment | Utf8 | 部署环境。 |
DataFusion SQL
复制查询
sql
SELECT
consumer_name,
source_type,
region,
COUNT(*) AS samples,
AVG(lag_seconds) AS average_lag_seconds,
MAX(lag_seconds) AS maximum_lag_seconds,
MAX(replay_bytes_behind) AS maximum_bytes_behind,
SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END) AS stale_samples,
100.0 * SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS stale_sample_rate_pct
FROM database_replication_samples
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY consumer_name, source_type, region
HAVING COUNT(*) >= 10
ORDER BY maximum_lag_seconds DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
最大复制或 CDC 滞后
西部区域副本有两个样本超过了说明性的三十秒新鲜度阈值。
replica-us-west
42 s
comparison 14.58 s
billing-cdc
6 s
comparison 3 s
| consumer_name | source_type | region | samples | average_lag_seconds | maximum_lag_seconds | maximum_bytes_behind | stale_samples | stale_sample_rate_pct |
|---|---|---|---|---|---|---|---|---|
| replica-us-west | postgres_replica | us-west | 12 | 14.58 | 42 | 44,040,192 | 2 | 16.67 |
| billing-cdc | cdc_pipeline | us-east | 12 | 3 | 6 | 6,291,456 | 0 | 0 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1平均滞后描述了正常状态,而最大滞后则保留了短暂但后果严重的停顿。
- 2过时采样率比一个孤立的最大值更容易发出警报。
- 3后面的字节提供工作负载上下文,因为相同的延迟可以代表截然不同的重放工作量。
需要决定的边缘情况
- 数据库滞后字段可能意味着写入、刷新、重播或连接器延迟。命名测量边界。
- 安静的源可以在仍然陈旧的情况下报告后面的低字节;保持时间和音量。
- 使用特定于工作负载的新鲜度目标,而不是全局的三十秒阈值。
推荐仪表板
- 条形:maximum_lag_seconds(按消费者)
- 趋势:lag_seconds 和 replay_bytes_behind
- 表:最新的滞后或不可用的消费者
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。