콘텐츠로 건너뛰기
Telemetry
문서 찾아보기
개념 및 SQL 패턴업데이트된 2026년 7월 29일Telemetry 편집 및 제품 팀의 검토3 최소 읽기

코딩 에이전트와 함께 이 문서를 사용하세요.

Claude Code, Codex, Cursor 또는 다른 코딩 에이전트에 대한 집중 프롬프트 팩을 연 다음 여기에서 다루는 워크플로에 맞게 조정하세요.

이 페이지에서
  1. 기다리고 기다리던 직접 배송으로 시작하세요
  2. 모든 대기열에 바인딩됨
  3. 고객 작업과 배압 분리
  4. 의도적으로 종료 처리
  5. 과부하 동작 확인

일괄 처리, 역압 및 정상적인 종료

일괄 처리는 요청 오버헤드를 줄일 수 있지만 오류 영향과 배달 대기 시간도 변경합니다. 제한 없이 이벤트를 대기열에 추가하는 프로세스는 중단 중에 메모리를 소비할 수 있습니다. 보류 중인 작업을 고려하지 않고 종료되는 프로세스는 자동으로 최신 이벤트를 잃을 수 있습니다.

Telemetry의 로그 API는 하나의 JSON 개체 또는 JSON 개체 배열을 허용합니다. API 기능을 사용하려면 모든 프로듀서가 메모리 내 백그라운드 대기열을 유지할 필요가 없습니다.

기다리고 기다리던 직접 배송으로 시작하세요

소규모 워크플로의 경우 하나의 압축 결과 이벤트를 보내고 제한된 시간 초과로 요청을 기다립니다. 이는 추론하고 테스트할 수 있는 가장 쉬운 전달 경로입니다.

측정 결과 요청 오버헤드가 상당한 것으로 나타났거나 기존 작업자가 내구성 있는 컬렉션 버퍼를 이미 소유하고 있는 경우 일괄 처리합니다. 크기 임계값을 무기한 기다리는 대규모 대기열보다 시간이 제한된 소규모 일괄 처리를 선호합니다.

await telemetry.log("api_request_completed", [
  {
    event_id: "evt_101",
    route_template: "/api/projects/:id",
    status: "success",
    latency_ms: 84,
  },
  {
    event_id: "evt_102",
    route_template: "/api/projects/:id",
    status: "failed",
    latency_ms: 912,
    error_type: "database_timeout",
  },
]);

동일한 테이블 스키마와 호환되는 배치의 모든 개체를 유지합니다. 하나의 유효하지 않거나 호환되지 않는 항목으로 인해 전체 요청의 결과가 복잡해질 수 있습니다.

모든 대기열에 바인딩됨

애플리케이션이 이벤트를 버퍼링하는 경우 다음을 정의합니다.

  1. 대기 중인 최대 이벤트 수 및 직렬화된 바이트입니다.
  2. 부분 일괄 처리가 전송되기 전의 최대 수명입니다.
  3. 최대 배치 크기.
  4. 시간 초과를 요청하고 예산을 재시도하세요.
  5. 오버플로 동작.
  6. 종료 동작.

오버플로 동작은 명시적이어야 합니다. 가장 오래되고 우선 순위가 낮은 진단 이벤트를 삭제하고, 시끄러운 성공 경로를 샘플링하고, 전용 텔레메트리 작업자를 차단하고, 내구성 있는 아웃박스을 유지하는 것은 서로 다른 운영 결과를 가져옵니다. 프로세스 메모리를 소진하여 무한한 대기열이 결정하도록 두지 마십시오.

안전한 진단 경로를 통해 대기열 깊이, 가장 오래된 이벤트 기간, 전송된 배치, 허용된 이벤트, 삭제된 이벤트 및 영구 전달 실패를 기록합니다. 동일한 실패 큐를 통해 원격 분석 큐의 자체 실패 이벤트를 반복적으로 보내지 마십시오.

고객 작업과 배압 분리

대부분의 제품 분석에서 원격 분석 제공은 고객 요청의 전체 대기 시간 예산을 소비해서는 안 됩니다. 짧은 제한된 핸드오프 또는 애플리케이션 소유 작업자를 사용하십시오. 대기열이 가득 찬 경우 무기한 기다리지 말고 문서화된 오버플로 정책을 적용하세요.

청구 또는 승인된 감사 이벤트의 경우 비즈니스 이벤트를 잃지 않고 내구성 있는 아웃박스를 사용하고 아웃박스 작업자에게 역압을 가하세요. 이벤트 전달 및 멱등성 가이드에서는 시도 전반에 걸쳐 안정적인 이벤트 ID를 설명합니다.

의도적으로 종료 처리

정상적인 종료 신호에서:

  1. 새로운 일을 받아들이지 마세요.
  2. 기내 애플리케이션 작업이 정의된 경계에 도달하도록 허용합니다.
  3. 나머지 원격 분석 일괄 처리를 보내거나 유지합니다.
  4. 종료 기한을 시행합니다.
  5. 전달할 수 없는 개수를 기록합니다.

특정 SDK가 이를 노출하고 문서화하지 않는 한 클라이언트 플러시 보장을 주장하지 마십시오. 클라이언트가 각 호출을 즉시 보내는 경우 추적된 모든 호출을 기다리는 것은 내부 대기열을 플러시하는 것과 다릅니다. 서버리스 및 엣지 런타임은 응답 후 실행을 정지할 수 있으므로 런타임에서 지원되는 백그라운드 작업 메커니즘을 사용하거나 이벤트가 필요할 때 반환하기 전에 전달하십시오.

과부하 동작 확인

전체 배치, 부분 시간 트리거 배치, 429, 503, 연결 시간 초과, 대기열 오버플로 및 보류 중인 이벤트가 있는 프로세스 종료를 테스트합니다. 재시도 시 이벤트 ID가 유지되고 실패 경로가 자격 증명이나 원시 페이로드를 인쇄하지 않는지 확인합니다.

이벤트 수집 문제 해결 가이드를 사용하여 응답을 확인하고 텔레메트리 볼륨 가이드를 사용하여 일괄 처리 또는 샘플링이 실제로 필요한지 측정합니다.

관련 제품 기능

안정적인 이벤트 이름, 타입이 지정된 필드, 개인 정보 보호 검토 컨텍스트를 캡처합니다.

소유권 및 기술 참조

이 설명은 Telemetry 편집팀의 소유입니다. 제품 팀은 동작, 예시, 경계를 검토합니다.

편집 기준 검토