跳至主要內容
Telemetry
結構化事件 SQL查詢範例

檢測丟失的服務心跳

查詢在故障事件出現之前停止報告的服務、工作人員或計劃任務。

入門service_heartbeats已審查 2026-07-27測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . SQL 相容性、事件契約、合成輸出和操作注意事項. 審查標準和所有權

問題已回答

哪些預期遙測源已停止傳送心跳?

沉默通常是處理程序崩潰或攝取路徑損壞的第一個症狀。此查詢將每個源的最新檢測訊號與預期報告間隔進行比較。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp當觀察到心跳時。
service_nameUtf8穩定的來源或服務名稱。
environmentUtf8製作、演出或開發。
statusUtf8在心跳時健康或退化。
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_nameenvironmentlast_seen_atheartbeats_in_window
billing_syncproduction2026-07-27 15:04:00Z132
email_workerproduction2026-07-27 15:11:00Z139

綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。

Production sources past the heartbeat deadline:來自 Detect Missing Service Heartbeats 範例結果的合成 last_seen_at 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

JSON 包包含型別化事件契約, illustrative 輸入行、確切的 SQL、預期輸出、審閱註釋和引擎版本。 CSV 包含顯示的結果。

SQL 是如何工作的

  1. 1MAX(timestamp_utc) 返回每個源的最新觀察到的心跳。
  2. 2HAVING 分組後進行過濾,僅保留最新事件早於允許的靜默視窗的服務。
  3. 3該計數提供了有用的上下文:在整個回溯視窗中沒有事件的源可能需要預期源資料表,而不是此僅事件查詢。

需要決定的邊緣情況

  • 從未發出過心跳的源不會出現。當完整覆蓋很重要時,維護預期的源登錄檔。
  • 將閾值設定為高於正常間隔加上攝取和排程抖動。
  • 將計劃的維護人員或殘疾工人分開,以避免吵鬧的警示。

推薦儀表板

  • 統計:超過截止日期的來源數量
  • 資料表:last_seen_at by service_name
  • 折線圖:按來源劃分的心跳量

警示指導

錯過兩到三個預期間隔後發出警示,幷包含上次檢視時間和執行手冊連結。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

繼續分析

在真實事件中執行它

建立資料表,調整欄位並儲存結果

免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。

獲取 API 金鑰