이벤트 스키마
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 웹훅 수명 주기 이벤트 시간입니다. |
| delivery_id | Utf8 | 안정적인 공급자 배달 식별자입니다. |
| provider | Utf8 | 웹훅 제공자. |
| event_type | Utf8 | 제공자 이벤트 유형. |
| event_name | Utf8 | webhook_received 또는 downstream_completed. |
| status | Utf8 | 최종 결과에 대한 성공 또는 실패. |
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분 다운스트림 완료 목표를 놓치는 경우가 많습니다.
invoice.payment_succeeded
96.21%
push
83.55%
| provider | event_type | received_deliveries | completed_deliveries | completed_within_target_pct | p95_completion_seconds |
|---|---|---|---|---|---|
| stripe | invoice.payment_succeeded | 8,420 | 8,346 | 96.21 | 242 |
| github | push | 3,180 | 2,890 | 83.55 | 811 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
SQL 작동 방식
- 1전달 CTE는 수명 주기 이벤트를 하나의 수신과 하나의 성공적인 다운스트림 완료로 축소합니다.
- 2완료 대기 시간은 HTTP 핸들러 시간뿐만 아니라 비즈니스 워크플로를 측정합니다.
- 3최종 집계는 완료 비율과 p95 시간을 모두 보고하므로 누락된 결과는 계속 표시됩니다.
확인할 경계 사례
- 중복 제거된 공급자 재시도는 동일한 배달 ID를 유지해야 하며 새로운 논리적 작업을 생성해서는 안 됩니다.
- 일부 이벤트 유형은 의도적으로 여러 결과로 확장되므로 명시적인 터미널 정의가 필요합니다.
- 최종 서비스 수준을 계산할 때 전체 완료 기간이 완료되지 않은 최근 영수증을 제외하세요.
추천 대시보드
- 바: completed_within_target_pct by event_type
- 트렌드: p95_completion_seconds
- 표: 완료되지 않은 가장 오래된 수신 배달
이 쿼리에 필요한 이벤트 설정하기
관련 계측 및 가이드
분석 계속하기
내 이벤트로 실행하기
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.