跳至主要內容
Telemetry
網路鉤子 SQL查詢範例

測量 Webhook 重試恢復

將永久性 Webhook 故障與稍後嘗試恢復的傳輸分開。

中級webhook_deliveries已審查 2026-07-27測試用 阿帕奇 DataFusion 45.2.0

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

問題已回答

Webhook 重試是恢復失敗還是創造更多工作?

當提供商重試成功時,原始失敗計數誇大了對客戶的影響。此查詢同時顯示初始故障、恢復的交付、永久故障和重複抑制。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp當處理嘗試結束時。
delivery_idUtf8由重試嘗試共享的穩定識別符號。
providerUtf8Webhook 提供商。
event_typeUtf8提供者事件型別。
attemptInt64基於一的處理嘗試。
statusUtf8成功、失敗或重複資料刪除。
DataFusion SQL

複製查詢

sql
WITH delivery_outcomes AS (
  SELECT
    delivery_id,
    provider,
    event_type,
    MAX(attempt) AS attempts,
    SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failed_attempts,
    SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) AS successful_attempts,
    SUM(CASE WHEN status = 'deduplicated' THEN 1 ELSE 0 END) AS deduplicated_attempts
  FROM webhook_deliveries
  WHERE timestamp_utc >= now() - INTERVAL '7 days'
  GROUP BY delivery_id, provider, event_type
)
SELECT
  provider,
  event_type,
  COUNT(*) AS deliveries,
  SUM(CASE
    WHEN failed_attempts > 0 AND successful_attempts > 0 THEN 1 ELSE 0
  END) AS recovered,
  SUM(CASE
    WHEN failed_attempts > 0 AND successful_attempts = 0 THEN 1 ELSE 0
  END) AS permanent_failures,
  SUM(deduplicated_attempts) AS duplicates_suppressed
FROM delivery_outcomes
GROUP BY provider, event_type
ORDER BY permanent_failures DESC, recovered DESC;

此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。

查詢結果

Webhook 事件導致永久失敗

恢復的事件仍然可見,但不會被視為永久的客戶影響。

providerevent_typedeliveriesrecoveredpermanent_failuresduplicates_suppressed
stripeinvoice.payment_succeeded4111
githubpush3101

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

Permanent failures by webhook event:來自 Measure Webhook Retry Recovery 範例結果的合成 permanent_failures 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

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

SQL 是如何工作的

  1. 1第一個 CTE 將一次交付的所有嘗試摺疊成一個結果記錄。
  2. 2恢復的傳遞至少有一次失敗的嘗試和至少一次成功的嘗試。永久的失敗永遠不會成功。
  3. 3重複抑制是單獨追蹤的,因為正確的冪等性是一個健康的結果,而不是處理失敗。

需要決定的邊緣情況

  • 保留提供商交付 ID,以便可以可靠地對重試進行分組。
  • 查詢視窗後可能會恢復交付;使用足夠長的視窗來覆蓋提供商的重試時間表。
  • 當成功需要的不僅僅是確認提供者時,將接收與下游副作用分開。

推薦儀表板

  • 分組條:由 event_type 恢復和 permanent_failures
  • Stat:重複抑制率
  • 資料表:下游作業上下文的最新永久性故障

警示指導

立即針對收入關鍵事件的永久性故障發出警示,並針對恢復交付量的突然增加作為預警訊號。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

定義源資料

此分析的事件模式

繼續分析

在真實事件中執行它

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

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

獲取 API 金鑰