콘텐츠로 건너뛰기
Telemetry
웹훅 SQL 레시피

웹훅 엔드투엔드 완료 측정

수신부터 다운스트림 완료까지 각 웹훅을 추적하고 운영 목표 내에서 완료되는 공유를 측정합니다.

고급webhook_lifecycle_events검토됨 2026-07-28테스트됨 아파치 DataFusion 45.2.0

검토자 Telemetry 제품 팀 . SQL 문법, 필수 이벤트 필드, 예제 결과, 쿼리 사용 시 제한 사항을 확인했습니다. 이 페이지의 검토 담당자

질문에 답변됨

어떤 웹훅 유형이 5분 이내에 다운스트림 작업을 완료합니까?

빠른 200 응답은 비즈니스 조치가 완료되었음을 증명하지 않습니다. 배달 ID별로 영수증과 다운스트림 결과를 결합하면 나중에 중단되거나 실패한 허용된 웹후크가 노출됩니다.

이벤트 스키마

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestamp웹훅 수명 주기 이벤트 시간입니다.
delivery_idUtf8안정적인 공급자 배달 식별자입니다.
providerUtf8웹훅 제공자.
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. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.

쿼리 결과

대상 내에서 웹훅 전달이 완료되었습니다.

GitHub 푸시 처리는 수신 시 승인되지만 5분 다운스트림 완료 목표를 놓치는 경우가 많습니다.

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
  • 표: 완료되지 않은 가장 오래된 수신 배달

알림 안내

웹훅 응답 코드가 정상 상태로 유지되더라도 성숙한 전달이 의미 있는 양의 완료 목표를 놓치면 알림합니다.

알림 설정 읽기

이 쿼리에 필요한 이벤트 설정하기

관련 계측 및 가이드

분석 계속하기

내 이벤트로 실행하기

테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.

무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.

API 키 받기