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

웹훅 재시도 복구 측정

이후 시도에서 복구된 전달과 영구적인 웹훅 실패를 분리하세요.

중급webhook_deliveries검토됨 2026-07-27테스트됨 아파치 DataFusion 45.2.0

검토자 Telemetry 제품 팀 . SQL 호환성, 이벤트 계약, 합성 출력 및 운영상의 주의사항. 표준 및 소유권 검토

질문에 답변됨

웹훅 재시도가 실패를 복구합니까, 아니면 더 많은 작업을 생성합니까?

원시 실패 횟수는 공급자가 성공적으로 재시도할 때 고객에게 미치는 영향을 과장합니다. 이 쿼리는 초기 실패, 복구된 전달, 영구 실패 및 중복 억제를 함께 표시합니다.

이벤트 계약

쿼리가 예상하는 필드

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

쿼리 결과

웹훅 이벤트로 인한 영구 실패

복구된 이벤트는 영구적인 고객 영향으로 계산되지 않고 계속 표시됩니다.

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
  • 통계: 중복 억제율
  • 표: 다운스트림 작업 컨텍스트의 최신 영구 실패

알림 안내

수익이 중요한 이벤트의 경우 영구적인 오류에 대해 즉시 알림하고, 조기 알림 신호로 복구된 배송이 갑자기 증가할 경우 알림합니다.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

소스 데이터 정의

이 분석을 위한 이벤트 스키마

분석 계속하기

실제 이벤트에서 실행

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

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

API 키 받기