이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 시도 완료 시간(UTC)입니다. |
| route_template | Utf8 | 안정적인 경로 템플릿. |
| request_id | Utf8 | 원래 시도 및 재시도에서 공유되는 식별자입니다. |
| attempt_number | Int64 | 1회 시도 순서. |
| status_code | Int64 | 시도에 대해 HTTP 상태가 반환되었습니다. |
| retry_after_ms | Int64 | 밀리초 단위로 재시도 지연이 적용됩니다. |
| environment | Utf8 | 배포 환경. |
DataFusion SQL
쿼리 복사
sql
WITH request_outcomes AS (
SELECT
route_template,
request_id,
COUNT(*) AS attempts,
MAX(CASE WHEN status_code = 429 THEN 1 ELSE 0 END) AS was_rate_limited,
MAX(CASE WHEN status_code BETWEEN 200 AND 299 THEN 1 ELSE 0 END) AS succeeded
FROM api_attempt_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY route_template, request_id
)
SELECT
route_template,
COUNT(*) AS requests,
SUM(was_rate_limited) AS rate_limited_requests,
SUM(CASE
WHEN was_rate_limited = 1 AND succeeded = 1 THEN 1
ELSE 0
END) AS recovered_requests,
100.0 * SUM(CASE
WHEN was_rate_limited = 1 AND succeeded = 1 THEN 1
ELSE 0
END) / NULLIF(SUM(was_rate_limited), 0) AS recovery_rate_pct
FROM request_outcomes
GROUP BY route_template
ORDER BY rate_limited_requests DESC, route_template;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
속도 제한 요청 복구
검색은 속도가 제한된 요청 3개 중 2개를 복구합니다. 관찰된 창에서는 내보내기가 복구되지 않습니다.
/api/search
66.67%
comparison 3%
/api/export
0%
comparison 1%
| route_template | requests | rate_limited_requests | recovered_requests | recovery_rate_pct |
|---|---|---|---|---|
| /api/search | 4 | 3 | 2 | 66.67 |
| /api/export | 2 | 1 | 0 | 0 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1첫 번째 CTE는 논리적 요청당 하나의 레코드를 생성하여 재시도로 인해 요청량이 늘어나는 것을 방지합니다.
- 2요청은 429 시도와 성공적인 시도가 모두 포함된 경우에만 복구된 것으로 간주됩니다.
- 3비율 옆에 속도 제한 요청 수를 유지하면 적은 양의 결과도 표시됩니다.
결정해야 할 극단적인 경우
- 재시도 후에도 유지되는 멱등성 또는 논리적 요청 식별자를 사용하세요.
- 보고 기간 이후에 완료된 요청이 영구적으로 실패로 표시되지 않도록 재시도 시퀀스를 바인딩했습니다.
- 재시도 소진과 별도로 클라이언트 취소를 기록합니다.
추천 대시보드
- 바: 경로별 recovery_rate_pct
- 트렌드: rate_limited_requests 및 recovered_requests
- 표: 시도 횟수 및 재시도 지연으로 인해 소진된 요청
레시피를 활용해 보세요
관련 계측 및 가이드
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.