콘텐츠로 건너뛰기
Telemetry
문서 찾아보기
가이드업데이트된 2026년 7월 28일Telemetry 편집 및 제품 팀의 검토5 최소 읽기

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

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

이 페이지에서
  1. 1. 전체 로그 스트림이 아닌 하나의 결정을 선택하십시오.
  2. 2. 현재 의미 목록 작성
  3. 3. 하나의 제한된 완료 이벤트를 정의합니다.
  4. 4. 기존 로그 옆으로 내보내기
  5. 5. 질문을 검토된 SQL로 번역합니다.
  6. 6. 합계뿐만 아니라 의미도 비교하세요
  7. 7. 단계별 홍보
  8. 8. 명시적인 롤백 경로 유지
  9. 이번 마이그레이션에서 다루지 않는 내용
  10. 실용적인 첫 번째 마이그레이션

임시 로그에서 구조화된 이벤트 및 SQL로 마이그레이션

자유 형식 로그는 로컬 디버깅에 유용하지만 반복되는 운영 및 제품 질문에는 안정적인 필드, 명시적인 단위 및 검토 가능한 정의가 필요합니다. 마이그레이션 시 기존 로그 또는 관찰 도구를 모두 교체할 필요는 없습니다. 하나의 프로덕션 워크플로로 시작하고, 기존 로그 옆에 하나의 제한된 완료 이벤트를 내보내고, 대시보드나 알림을 변경하기 전에 SQL이 의도한 질문에 답변하는지 증명합니다. 구조화된 로그 관리 가이드에서는 더 큰 운영 모델을 설명합니다.

이 가이드에서는 API 요청을 예로 사용하지만 작업, 웹훅, AI 실행, 청구 워크플로 및 애플리케이션 수준 데이터베이스 작업에는 동일한 순서가 적용됩니다.

1. 전체 로그 스트림이 아닌 하나의 결정을 선택하십시오.

이미 엔지니어링 시간을 소모하는 질문으로 시작하세요.

  • 어떤 API 경로에 의미 있는 5xx 비율이 있습니까?
  • 재시도 후 복구되는 속도 제한 요청은 무엇입니까?
  • 대기열 연령을 구축하는 직업 유형은 무엇입니까?
  • 어떤 프롬프트 버전이 더 적은 허용 결과를 생성합니까?
  • 하나의 요청 내에서 어떤 데이터베이스 작업 지문이 반복됩니까?

답변이 뒷받침할 결정, 소유자, 보고 기간, 요율을 해석하는 데 필요한 최소 볼륨을 기록합니다. 이렇게 하면 이벤트가 애플리케이션 메모리에서 사용 가능한 모든 값의 복사본이 되는 것을 방지할 수 있습니다.

유용할 경우 스택 추적이나 로컬 컨텍스트에 대한 진단 로그를 보관하세요. 구조화된 이벤트는 선택한 질문에 대한 지속 가능한 분석 계약입니다.

2. 현재 의미 목록 작성

계측을 변경하기 전에 기존 검색 또는 대시보드 정의를 저장하고 몇 가지 실제 결과를 검사하세요. 기록:

  1. 워크플로를 식별하는 메시지 또는 속성입니다.
  2. 성공, 재시도, 취소, 터미널 실패를 구별하는 방법입니다.
  3. 작업의 시작 또는 완료를 표시하는 타임스탬프입니다.
  4. 재시도가 추가 레코드를 생성하는지 여부입니다.
  5. 비밀, 개인 데이터, 원시 페이로드 또는 무제한 텍스트가 포함된 필드입니다.
  6. 운영자의 메모리에만 존재하는 제외 및 최소 볼륨 규칙은 무엇입니까?

이 목록은 의미론적 기준이지 이전 결과가 정확하다는 약속이 아닙니다. 기존 검색에 논리적 요청과 시도가 혼합된 경우 해당 제한 사항을 자동으로 재현하는 대신 문서화하십시오.

3. 하나의 제한된 완료 이벤트를 정의합니다.

완료된 작업 단위에 대해 하나의 이벤트를 선호합니다. 명시적인 숫자, 부울, 단위 및 제어된 범주를 사용하십시오. 원시 URL 대신 경로 템플릿을 사용하고, 무제한 예외 텍스트 대신 분류된 오류를 사용하고, 상관관계에 필요한 경우에만 내부 식별자를 사용하세요.

{
  "event_name": "api_request_completed",
  "request_id": "req_7d91",
  "route_template": "/api/projects/:id/sync",
  "method": "POST",
  "status_code": 503,
  "outcome": "dependency_failed",
  "latency_ms": 842,
  "attempt_number": 2,
  "release": "2026.07.2",
  "environment": "production",
  "schema_version": 1
}

인증 헤더, 쿠키, 요청 본문, 연결 문자열, 원시 프롬프트, 웹훅 페이로드, 결제 세부정보 또는 무제한 고객 콘텐츠를 보내지 마세요. 배포하기 전에 필드 허용 목록을 검토하세요. 민감한 데이터 수정카디널리티가 높은 필드를 참조하세요.

4. 기존 로그 옆으로 내보내기

시간 제한이 있는 이중 쓰기 기간을 실행합니다. 애플리케이션은 팀이 의존하는 진단 기록을 계속 생성하는 동시에 새 이벤트도 생성합니다. 중앙 경계에 계측(미들웨어, 작업 래퍼, 웹훅 디스패처 또는 데이터베이스 클라이언트 래퍼)을 추가하면 성공 및 실패 경로에서 동일한 시계 및 필드 이름을 사용할 수 있습니다.

계측은 애플리케이션의 성공을 실패로 바꿔서는 안 됩니다. 분석 전달을 명시적인 시간 초과 및 시스템에 적합한 재시도 동작을 사용하여 별도의 제한된 작업으로 처리합니다. 누락된 구성을 적용하기 전에 배포된 모든 환경에서 안전하게 대체되는지 확인하세요.

이중 쓰기 중에 이벤트 수집 최신성, 필수 필드 완전성, 스키마 버전 및 중복 식별자를 모니터링합니다. 이벤트 수집 신선도, 필수 필드 null 비율중복 이벤트 ID 레시피는 재사용 가능한 검사를 제공합니다.

5. 질문을 검토된 SQL로 번역합니다.

텍스트 검색 표현을 음역하는 대신 이벤트 계약부터 시작하세요. API 오류의 경우 개수와 분모를 모두 유지합니다.

SELECT
  route_template,
  COUNT(*) AS requests,
  SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS errors,
  100.0 * SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS error_rate_pct
FROM api_request_completed
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'production'
GROUP BY route_template
HAVING COUNT(*) >= 20
ORDER BY error_rate_pct DESC;

시간 경계, 상태 정의, 재시도 그레인, 늦은 이벤트 처리 및 최소 볼륨을 검토합니다. 성공, 예상 실패, 재시도, 중복, Null 및 지연된 이벤트를 하나 이상 테스트합니다. 쿼리가 운영상 중요해지면 결정적 고정 장치와 예상 결과를 옆에 저장하세요.

SQL 레시피 라이브러리에는 입력된 스키마, 읽기 전용 DataFusion SQL, 합성 출력, 시각화, 엣지 케이스, 대시보드 계획 및 알림 지침이 포함되어 있습니다. 브라우저 SQL 플레이그라운드는 샘플 행을 Telemetry로 보내지 않고 지원되는 픽스처를 로컬로 실행합니다.

6. 합계뿐만 아니라 의미도 비교하세요

동일한 닫힌 UTC 창에서 이전 답변과 새 답변을 실행합니다. 임의의 정확한 일치를 타겟팅하는 대신 차이점을 조사합니다.

  • 새 개수가 적다는 것은 재시도가 올바르게 축소되었음을 의미할 수 있습니다.
  • 개수가 높을수록 메시지 패턴 검색에서 누락된 오류가 노출될 수 있습니다.
  • 원시 URL을 대체하는 안정적인 경로 템플릿으로 인해 경로 순위가 달라질 수 있습니다.
  • 최근의 작은 불일치는 지연된 이벤트나 불완전한 시간 버킷으로 인해 발생할 수 있습니다.
  • 기록 데이터에는 새 계약에 의해 도입된 필드가 포함될 수 없습니다.

원인, 허용된 동작, 소유자, 이벤트나 쿼리에 변경이 필요한지 여부 등 각 차이점에 대한 짧은 조정 기록을 만듭니다. 오래된 버그가 재현될 때까지 새로운 SQL을 조정하지 마십시오.

7. 단계별 홍보

한 번에 한 소비자씩 이동합니다.

  1. 탐색 보고서에는 새로운 SQL을 사용하십시오.
  2. 소유자 및 정의와 함께 검토된 쿼리를 저장합니다.
  3. 요율 외에 거래량을 유지하고 전체 버킷을 사용하는 대시보드를 구축하세요.
  4. 비페이징 또는 섀도우 모드에서 제안된 알림을 실행합니다.
  5. 지속 기간 규칙, 최소 볼륨 및 응답 링크를 추가합니다.
  6. 새 소비자가 합의된 유효성 검사 창에서 살아남은 후에만 기존 소비자를 폐기하십시오.

대시보드 컷오버는 되돌릴 수 있습니다. 오래된 데이터 삭제, 진단 로그 제거 또는 설정된 알림 비활성화는 불가능할 수 있습니다. 자체 보존 및 롤백 검토를 통해 이를 별도의 결정으로 유지합니다.

8. 명시적인 롤백 경로 유지

컷오버 전에 다음을 기록하십시오.

  • 이전 검색, 대시보드 및 알림 식별자입니다.
  • 이벤트를 소개한 릴리스입니다.
  • 이벤트 및 스키마 버전입니다.
  • 새로운 저장된 쿼리 식별자입니다.
  • 소비자를 이전 정의로 되돌리기 위한 기준입니다.
  • 이중작성과 추가 검증이 종료될 수 있는 날짜입니다.

새 이벤트가 필수 필드를 잃거나 지연되거나 의미가 변경되면 프로듀서를 계속 진단하면서 영향을 받은 소비자를 복원합니다. 롤백 시 동일한 사고가 발생하는 동안 새 계측를 제거할 필요는 없습니다.

이번 마이그레이션에서 다루지 않는 내용

이 워크플로우는 기본 호스트 지표, 데이터베이스 서버 통계, 분산 추적 또는 무제한 진단 로그를 대체한다고 주장하지 않습니다. 예를 들어 Telemetry의 데이터베이스 패턴은 안전한 쿼리 지문, 풀 대기, 트랜잭션 결과, 잠금 관찰, 복제 신호 및 마이그레이션 결과와 같은 애플리케이션에서 방출된 데이터베이스 텔레메트리을 분석합니다. pg_stat_* 수집가가 아닙니다.

답변할 수 있는 질문에 대해 각 신호를 사용하고, 운영 가치가 데이터 및 카디널리티 비용을 정당화하는 경우에만 안정적인 식별자를 사용하여 시스템을 연결합니다.

실용적인 첫 번째 마이그레이션

API 서비스의 경우 API 요청 처리량, API 경로별 오류율API 429 복구. 그들은 트래픽, 안정성, 재시도 질문에 다양한 방식으로 답변하면서 소규모 이벤트 계약을 공유합니다. 데이터베이스 기반 워크플로의 경우 요청 및 쿼리 지문을 안전하게 연관시킬 수 있는 후에만 N+1 쿼리 감지를 추가하세요.

하나의 워크플로우가 안정되면 질문 없이 원래 이벤트를 확장하는 대신 다음 결정을 위해 마이그레이션 체크리스트를 재사용하십시오.

관련 제품 기능

구조화된 이벤트 테이블에 대해 읽기 전용 DataFusion SQL을 실행하고 결과를 재사용합니다.

소유권 및 기술 참조

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

편집 기준 검토