活動合約
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| timestamp_utc | Timestamp | 當觀察到心跳時。 |
| service_name | Utf8 | 穩定的來源或服務名稱。 |
| environment | Utf8 | 製作、演出或開發。 |
| status | Utf8 | 在心跳時健康或退化。 |
DataFusion SQL
複製查詢
sql
SELECT
service_name,
environment,
MAX(timestamp_utc) AS last_seen_at,
COUNT(*) AS heartbeats_in_window
FROM service_heartbeats
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY service_name, environment
HAVING MAX(timestamp_utc) < now() - INTERVAL '10 minutes'
ORDER BY last_seen_at ASC;此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。
查詢結果
生產來源已超過心跳期限
應首先調查最舊的 last_seen_at 值。
| service_name | environment | last_seen_at | heartbeats_in_window |
|---|---|---|---|
| billing_sync | production | 2026-07-27 15:04:00Z | 132 |
| email_worker | production | 2026-07-27 15:11:00Z | 139 |
綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。
SQL 是如何工作的
- 1MAX(timestamp_utc) 返回每個源的最新觀察到的心跳。
- 2HAVING 分組後進行過濾,僅保留最新事件早於允許的靜默視窗的服務。
- 3該計數提供了有用的上下文:在整個回溯視窗中沒有事件的源可能需要預期源資料表,而不是此僅事件查詢。
需要決定的邊緣情況
- 從未發出過心跳的源不會出現。當完整覆蓋很重要時,維護預期的源登錄檔。
- 將閾值設定為高於正常間隔加上攝取和排程抖動。
- 將計劃的維護人員或殘疾工人分開,以避免吵鬧的警示。
推薦儀表板
- 統計:超過截止日期的來源數量
- 資料表:last_seen_at by service_name
- 折線圖:按來源劃分的心跳量
讓查詢範例發揮作用
相關埋點和指南
繼續分析
在真實事件中執行它
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。