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

衡量 Webhook 端到端完成情況

追蹤每個 Webhook 從接收到下游完成的整個過程,並衡量在操作目標內完成的份額。

高階webhook_lifecycle_events已審查 2026-07-28測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . 我們檢查了 SQL 語法、必要的事件欄位、範例結果和查詢使用限制. 誰負責審查此頁面

問題已回答

哪些 Webhook 型別會在五分鐘內完成下游工作?

快速 200 回應並不能證明業務操作已完成。透過交付 ID 連線收據和下游結果會暴露已接受的 Webhook,但這些 Webhook 隨後會停止或失敗。

事件結構

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestampWebhook 生命週期事件時間。
delivery_idUtf8穩定的提供商交付識別符號。
providerUtf8Webhook 提供商。
event_typeUtf8提供者事件型別。
event_nameUtf8webhook_received 或 downstream_completed。
statusUtf8最終結果是成功還是失敗。
DataFusion SQL

複製查詢

sql
WITH deliveries AS (
  SELECT
    delivery_id,
    provider,
    event_type,
    MIN(CASE
      WHEN event_name = 'webhook_received' THEN timestamp_utc
      ELSE NULL
    END) AS received_at,
    MIN(CASE
      WHEN event_name = 'downstream_completed' AND status = 'success'
      THEN timestamp_utc ELSE NULL
    END) AS completed_at
  FROM webhook_lifecycle_events
  WHERE timestamp_utc >= now() - INTERVAL '7 days'
  GROUP BY delivery_id, provider, event_type
),
delivery_outcomes AS (
  SELECT
    delivery_id,
    provider,
    event_type,
    received_at,
    completed_at,
    date_part('second', completed_at - received_at) AS completion_seconds
  FROM deliveries
  WHERE received_at IS NOT NULL
)
SELECT
  provider,
  event_type,
  COUNT(*) AS received_deliveries,
  SUM(CASE WHEN completed_at IS NOT NULL THEN 1 ELSE 0 END)
    AS completed_deliveries,
  100.0 * SUM(CASE
    WHEN completion_seconds <= 300.0 THEN 1 ELSE 0
  END) / NULLIF(COUNT(*), 0) AS completed_within_target_pct,
  approx_percentile_cont(completion_seconds, 0.95) AS p95_completion_seconds
FROM delivery_outcomes
GROUP BY provider, event_type
HAVING COUNT(*) >= 20
ORDER BY completed_within_target_pct, received_deliveries DESC;

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

查詢結果

Webhook 交付在目標範圍內完成

GitHub 推送處理在收到時得到確認,但經常錯過五分鐘下游完成目標。

providerevent_typereceived_deliveriescompleted_deliveriescompleted_within_target_pctp95_completion_seconds
stripeinvoice.payment_succeeded8,4208,34696.21242
githubpush3,1802,89083.55811

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

Webhook deliveries completed within target:來自 Measure webhook end-to-end completion 範例結果的合成 completed_within_target_pct 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載範例資料

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

SQL 是如何工作的

  1. 1交付 CTE 將生命週期事件摺疊為一份收據和一次成功的下游完成。
  2. 2完成延遲衡量的是業務工作流程,而不僅僅是 HTTP 處理程式時間。
  3. 3最終聚合報告完成份額和 p95 時間,因此缺失的結果仍然可見。

需要檢查的邊界情況

  • 重複資料刪除提供程式重試應保留相同的交付 ID,並且不會建立新的邏輯工作。
  • 某些事件型別有意分散為多個結果,並且需要明確的終端定義。
  • 在計算最終服務水平時,排除尚未完全完成視窗的最近收貨。

推薦儀表板

  • 酒吧:completed_within_target_pct by event_type
  • 趨勢:p95_completion_seconds
  • 資料表:最早收到但未完成的交付

警示指導

即使 Webhook 回應程式碼保持正常,當成熟的交付未達到有意義的完成目標時發出警示。

讀取警示設定

設定此查詢需要的事件

相關埋點和指南

繼續分析

在你的事件上執行

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

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

獲取 API 金鑰