콘텐츠로 건너뛰기
Telemetry
API 신뢰성 SQL 레시피

API 429 속도 제한 복구 측정

모든 재시도를 새 요청으로 처리하지 않고 속도 제한 요청이 이후 시도에서 얼마나 자주 복구되는지 측정합니다.

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

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

질문에 답변됨

HTTP 429를 수신하는 요청이 재시도 후에 성공적으로 복구됩니까?

시도 수준 원격 분석을 통해 재시도 폭풍이 수요처럼 보일 수 있습니다. 이 패턴은 먼저 시도를 하나의 요청 결과로 축소한 다음, 속도가 제한된 요청이 결국 복구된 횟수를 측정합니다.

이벤트 계약

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestamp시도 완료 시간(UTC)입니다.
route_templateUtf8안정적인 경로 템플릿.
request_idUtf8원래 시도 및 재시도에서 공유되는 식별자입니다.
attempt_numberInt641회 시도 순서.
status_codeInt64시도에 대해 HTTP 상태가 반환되었습니다.
retry_after_msInt64밀리초 단위로 재시도 지연이 적용됩니다.
environmentUtf8배포 환경.
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개를 복구합니다. 관찰된 창에서는 내보내기가 복구되지 않습니다.

route_templaterequestsrate_limited_requestsrecovered_requestsrecovery_rate_pct
/api/search43266.67
/api/export2100

합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.

Rate-limited request recovery: Measure API 429 Rate-Limit Recovery 예제 결과의 합성 recovery_rate_pct 값에 대한 정적 차트
결정론적 예제 출력의 색인 생성 가능한 SVG입니다. 기사, 런북 또는 저작자가 포함된 디자인 검토를 위해 다운로드하세요.

예제 재현

공공 픽스처 다운로드

JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.

SQL 작동 방식

  1. 1첫 번째 CTE는 논리적 요청당 하나의 레코드를 생성하여 재시도로 인해 요청량이 늘어나는 것을 방지합니다.
  2. 2요청은 429 시도와 성공적인 시도가 모두 포함된 경우에만 복구된 것으로 간주됩니다.
  3. 3비율 옆에 속도 제한 요청 수를 유지하면 적은 양의 결과도 표시됩니다.

결정해야 할 극단적인 경우

  • 재시도 후에도 유지되는 멱등성 또는 논리적 요청 식별자를 사용하세요.
  • 보고 기간 이후에 완료된 요청이 영구적으로 실패로 표시되지 않도록 재시도 시퀀스를 바인딩했습니다.
  • 재시도 소진과 별도로 클라이언트 취소를 기록합니다.

추천 대시보드

  • 바: 경로별 recovery_rate_pct
  • 트렌드: rate_limited_requests 및 recovered_requests
  • 표: 시도 횟수 및 재시도 지연으로 인해 소진된 요청

알림 안내

속도가 제한된 볼륨이 중요하고 복구가 여러 버킷에 대해 경로의 검토된 목표 미만으로 유지되는 경우 알림합니다.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

분석 계속하기

실제 이벤트에서 실행

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

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

API 키 받기