跳转到内容
Telemetry
数据库可靠性 SQL查询示例

测量数据库复制和 CDC 延迟

通过平均延迟、最差延迟、落后字节数和过时采样率来比较副本和更改数据捕获消费者。

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

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

问题已回答

哪些副本或 CDC 使用者落后于源数据库?

只有当下游消费者保持足够的最新状态以实现其目的时,复制才是健康的。测量落后的秒数和字节数可以使安静的停滞消费者与处理较大流的繁忙消费者区分开来。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp复制采样时间(UTC)。
consumer_nameUtf8稳定的副本、连接器或下游使用者名称。
source_typeUtf8postgres_replica、cdc_pipeline 或其他受控源类型。
regionUtf8批准的部署区域。
lag_secondsFloat64观察到的时间滞后于源。
replay_bytes_behindInt64等待重播或消耗的大约字节数。
statusUtf8健康、滞后、停滞或不可用。
environmentUtf8部署环境。
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 滞后

西部区域副本有两个样本超过了说明性的三十秒新鲜度阈值。

consumer_namesource_typeregionsamplesaverage_lag_secondsmaximum_lag_secondsmaximum_bytes_behindstale_samplesstale_sample_rate_pct
replica-us-westpostgres_replicaus-west1214.584244,040,192216.67
billing-cdccdc_pipelineus-east12366,291,45600

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

Maximum replication or CDC lag:来自 Measure Database Replication and CDC Lag 示例结果的合成 maximum_lag_seconds 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1平均滞后描述了正常状态,而最大滞后则保留了短暂但后果严重的停顿。
  2. 2过时采样率比一个孤立的最大值更容易发出警报。
  3. 3后面的字节提供工作负载上下文,因为相同的延迟可以代表截然不同的重放工作量。

需要决定的边缘情况

  • 数据库滞后字段可能意味着写入、刷新、重播或连接器延迟。命名测量边界。
  • 安静的源可以在仍然陈旧的情况下报告后面的低字节;保持时间和音量。
  • 使用特定于工作负载的新鲜度目标,而不是全局的三十秒阈值。

推荐仪表板

  • 条形:maximum_lag_seconds(按消费者)
  • 趋势:lag_seconds 和 replay_bytes_behind
  • 表:最新的滞后或不可用的消费者

警报指导

当消费者连续样品超过记录的新鲜度目标或完全停止报告时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥