이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 소식통이 해당 사건이 발생했다고 말할 때. |
| received_at | Timestamp | Telemetry가 이벤트를 수신했을 때. |
| source | Utf8 | 프로듀서 또는 수집 경로. |
| event_name | Utf8 | 안정적인 이벤트 계약 이름입니다. |
쿼리 복사
SELECT
source,
event_name,
COUNT(*) AS events,
AVG(date_part('second', received_at - timestamp_utc)) / 60.0
AS average_delay_minutes,
approx_percentile_cont(
date_part('second', received_at - timestamp_utc) / 60.0,
0.95
) AS p95_delay_minutes,
SUM(CASE
WHEN received_at - timestamp_utc > INTERVAL '15 minutes' THEN 1
ELSE 0
END) AS events_over_15_minutes
FROM ingestion_events
WHERE received_at >= now() - INTERVAL '24 hours'
AND received_at >= timestamp_utc
GROUP BY source, event_name
HAVING COUNT(*) >= 20
ORDER BY p95_delay_minutes DESC;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
p95 이벤트 전달 지연
오프라인 모바일 동기화는 실시간이지만 최근 제품 집단을 변경할 수 있는 오래된 이벤트를 정기적으로 전달합니다.
| source | event_name | events | average_delay_minutes | p95_delay_minutes | events_over_15_minutes |
|---|---|---|---|---|---|
| mobile_offline_sync | feature_used | 4,260 | 18.4 | 96.2 | 1,088 |
| billing_webhook | invoice_updated | 1,380 | 1.2 | 4.8 | 11 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. illustrative 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1수신 시간은 운영 기간을 제한하고, 이벤트 시간은 전달된 각 레코드의 오래된 정도를 측정합니다.
- 2평균 및 p95 지연은 일반적으로 지연되는 프로듀서를 롱테일 문제와 분리합니다.
- 3명시적인 늦은 이벤트 수를 사용하면 백분위수에만 의존하지 않고도 영향을 쉽게 읽을 수 있습니다.
결정해야 할 극단적인 경우
- 클록 스큐는 음수 또는 과장된 지연을 생성할 수 있습니다. 프로듀서 시계를 별도로 모니터링하고 수정합니다.
- 오프라인 클라이언트는 늦은 데이터를 전달해야 하며 서버 이벤트와 다른 임계값이 필요할 수 있습니다.
- 늦은 이벤트가 도착할 때 대시보드가 최근 버킷을 다시 지정할지 여부를 결정합니다.
추천 대시보드
- 바: 소스별 p95_delay_minutes
- 추세: 수신 시간별 지연 이벤트 수
- 표: 소스 및 이벤트 시간이 포함된 최신 지연 이벤트
레시피를 활용해 보세요
관련 계측 및 가이드
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.