이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 처리 완료 시간. |
| provider | Utf8 | 웹훅 제공자. |
| event_type | Utf8 | 제공자 이벤트 카테고리. |
| idempotency_outcome | Utf8 | new_event 또는 중복. |
| status | Utf8 | 성공 또는 실패. |
| latency_ms | Float64 | 처리 기간. |
DataFusion SQL
쿼리 복사
sql
SELECT
provider,
event_type,
COUNT(*) AS deliveries,
SUM(CASE WHEN idempotency_outcome = 'duplicate' THEN 1 ELSE 0 END) AS duplicates,
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failures,
100.0 * SUM(CASE WHEN idempotency_outcome = 'duplicate' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS duplicate_rate_pct,
approx_percentile_cont(latency_ms, 0.95) AS p95_latency_ms
FROM webhook_deliveries
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY provider, event_type
ORDER BY duplicate_rate_pct DESC, failures DESC;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
중복 및 실패한 웹훅 전달
Stripe 결제 실패는 중복률이 가장 높고 단말기 실패도 더 많습니다.
invoice.payment_failed
34
9
push
42
3
| provider | event_type | deliveries | duplicates | failures | duplicate_rate_pct | p95_latency_ms |
|---|---|---|---|---|---|---|
| stripe | invoice.payment_failed | 480 | 34 | 9 | 7.08 | 1,180 |
| github | push | 2,940 | 42 | 3 | 1.43 | 420 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. illustrative 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1CASE 표현식은 동일한 배달 모집단에서 중복 및 실패 횟수를 계산합니다.
- 2중복 비율은 배송 특성입니다. 이는 중복된 비즈니스 효과를 입증하지 않습니다.
- 3테일 대기 시간은 핸들러가 공급자 시간 초과 또는 재시도 경계에 접근하고 있는지 여부를 보여줍니다.
결정해야 할 극단적인 경우
- 중복은 성공적으로 중복 제거될 수 있으며 자동으로 실패로 간주되어서는 안 됩니다.
- 공급자 재시도 정책과 이벤트 볼륨이 다르므로 공급자와 이벤트 유형을 유지하세요.
- 이 테이블에 웹훅 서명이나 원시 결제 페이로드를 저장하지 마세요.
추천 대시보드
- 누적 막대: 이벤트 유형별 중복 및 실패
- 추세: p95 웹훅 대기 시간
- 표: 최근 실패한 다운스트림 작업
레시피를 활용해 보세요
관련 계측 및 가이드
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.