活動合約
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| 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
- 資料表:最新的滯後或不可用的消費者
讓查詢範例發揮作用
相關埋點和指南
繼續分析
在真實事件中執行它
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。