OpenTelemetry 지원은 현재 베타 버전이며 세부 사항은 변경될 수 있습니다.
빠른 시작
환경 변수를 사용하여 OpenTelemetry를 구성합니다:기본 내보내기 간격은 메트릭의 경우 60초, 로그의 경우 5초입니다. 설정 중에는 디버깅 목적으로 더 짧은 간격을 사용할 수 있습니다. 프로덕션 사용을 위해 이를 재설정하는 것을 잊지 마세요.
관리자 구성
관리자는 관리되는 설정 파일을 통해 모든 사용자에 대한 OpenTelemetry 설정을 구성할 수 있습니다. 이를 통해 조직 전체에서 텔레메트리 설정을 중앙에서 제어할 수 있습니다. 설정이 적용되는 방식에 대한 자세한 내용은 설정 우선순위를 참조하세요. 관리되는 설정 파일은 다음 위치에 있습니다:- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux 및 WSL:
/etc/claude-code/managed-settings.json - Windows:
C:\ProgramData\ClaudeCode\managed-settings.json
관리되는 설정은 MDM(Mobile Device Management) 또는 기타 디바이스 관리 솔루션을 통해 배포할 수 있습니다. 관리되는 설정 파일에 정의된 환경 변수는 높은 우선순위를 가지며 사용자가 재정의할 수 없습니다.
구성 세부 사항
일반적인 구성 변수
| 환경 변수 | 설명 | 예시 값 |
|---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | 텔레메트리 수집 활성화 (필수) | 1 |
OTEL_METRICS_EXPORTER | 메트릭 내보내기 유형 (쉼표로 구분) | console, otlp, prometheus |
OTEL_LOGS_EXPORTER | 로그/이벤트 내보내기 유형 (쉼표로 구분) | console, otlp |
OTEL_EXPORTER_OTLP_PROTOCOL | OTLP 내보내기 프로토콜 (모든 신호) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | OTLP 수집기 엔드포인트 (모든 신호) | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | 메트릭 프로토콜 (일반 설정 재정의) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | OTLP 메트릭 엔드포인트 (일반 설정 재정의) | http://localhost:4318/v1/metrics |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | 로그 프로토콜 (일반 설정 재정의) | grpc, http/json, http/protobuf |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | OTLP 로그 엔드포인트 (일반 설정 재정의) | http://localhost:4318/v1/logs |
OTEL_EXPORTER_OTLP_HEADERS | OTLP용 인증 헤더 | Authorization=Bearer token |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY | mTLS 인증용 클라이언트 키 | 클라이언트 키 파일 경로 |
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE | mTLS 인증용 클라이언트 인증서 | 클라이언트 인증서 파일 경로 |
OTEL_METRIC_EXPORT_INTERVAL | 내보내기 간격 (밀리초 단위, 기본값: 60000) | 5000, 60000 |
OTEL_LOGS_EXPORT_INTERVAL | 로그 내보내기 간격 (밀리초 단위, 기본값: 5000) | 1000, 10000 |
OTEL_LOG_USER_PROMPTS | 사용자 프롬프트 콘텐츠 로깅 활성화 (기본값: 비활성화) | 1로 활성화 |
메트릭 카디널리티 제어
다음 환경 변수는 카디널리티를 관리하기 위해 메트릭에 포함되는 속성을 제어합니다:| 환경 변수 | 설명 | 기본값 | 비활성화 예시 |
|---|---|---|---|
OTEL_METRICS_INCLUDE_SESSION_ID | 메트릭에 session.id 속성 포함 | true | false |
OTEL_METRICS_INCLUDE_VERSION | 메트릭에 app.version 속성 포함 | false | true |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | 메트릭에 user.account_uuid 속성 포함 | true | false |
동적 헤더
동적 인증이 필요한 엔터프라이즈 환경의 경우 스크립트를 구성하여 헤더를 동적으로 생성할 수 있습니다:설정 구성
.claude/settings.json에 추가합니다:
스크립트 요구 사항
스크립트는 HTTP 헤더를 나타내는 문자열 키-값 쌍이 있는 유효한 JSON을 출력해야 합니다:중요한 제한 사항
헤더는 시작 시에만 가져오며, 런타임 중에는 가져오지 않습니다. 이는 OpenTelemetry 내보내기 아키텍처 제한 때문입니다. 빈번한 토큰 새로고침이 필요한 시나리오의 경우 자체 헤더를 새로고칠 수 있는 프록시로 OpenTelemetry Collector를 사용합니다.다중 팀 조직 지원
여러 팀 또는 부서가 있는 조직은OTEL_RESOURCE_ATTRIBUTES 환경 변수를 사용하여 다양한 그룹을 구분하기 위한 사용자 정의 속성을 추가할 수 있습니다:
- 팀 또는 부서별로 메트릭 필터링
- 비용 센터별 비용 추적
- 팀별 대시보드 생성
- 특정 팀에 대한 경고 설정
OTEL_RESOURCE_ATTRIBUTES에 대한 중요한 형식 요구 사항:참고: 전체 키=값 쌍을 인용하는 것 (예:
OTEL_RESOURCE_ATTRIBUTES 환경 변수는 W3C Baggage 사양을 따르며, 엄격한 형식 요구 사항이 있습니다:- 공백 허용 안 함: 값에 공백이 포함될 수 없습니다. 예를 들어,
user.organizationName=My Company는 유효하지 않습니다 - 형식: 쉼표로 구분된 키=값 쌍이어야 합니다:
key1=value1,key2=value2 - 허용되는 문자: 제어 문자, 공백, 큰따옴표, 쉼표, 세미콜론 및 백슬래시를 제외한 US-ASCII 문자만 허용됩니다
- 특수 문자: 허용되는 범위 외의 문자는 퍼센트 인코딩되어야 합니다
"key=value with spaces")은 OpenTelemetry 사양에서 지원되지 않으며 속성이 따옴표로 접두사가 붙는 결과가 됩니다.구성 예시
사용 가능한 메트릭 및 이벤트
표준 속성
모든 메트릭 및 이벤트는 다음 표준 속성을 공유합니다:| 속성 | 설명 | 제어 대상 |
|---|---|---|
session.id | 고유 세션 식별자 | OTEL_METRICS_INCLUDE_SESSION_ID (기본값: true) |
app.version | 현재 Claude Code 버전 | OTEL_METRICS_INCLUDE_VERSION (기본값: false) |
organization.id | 조직 UUID (인증 시) | 사용 가능할 때 항상 포함됨 |
user.account_uuid | 계정 UUID (인증 시) | OTEL_METRICS_INCLUDE_ACCOUNT_UUID (기본값: true) |
terminal.type | 터미널 유형 (예: iTerm.app, vscode, cursor, tmux) | 감지될 때 항상 포함됨 |
메트릭
Claude Code는 다음 메트릭을 내보냅니다:| 메트릭 이름 | 설명 | 단위 |
|---|---|---|
claude_code.session.count | 시작된 CLI 세션 수 | count |
claude_code.lines_of_code.count | 수정된 코드 라인 수 | count |
claude_code.pull_request.count | 생성된 풀 요청 수 | count |
claude_code.commit.count | 생성된 git 커밋 수 | count |
claude_code.cost.usage | Claude Code 세션 비용 | USD |
claude_code.token.usage | 사용된 토큰 수 | tokens |
claude_code.code_edit_tool.decision | 코드 편집 도구 권한 결정 수 | count |
claude_code.active_time.total | 총 활성 시간 (초) | s |
메트릭 세부 사항
세션 카운터
각 세션 시작 시 증가합니다. 속성:- 모든 표준 속성
코드 라인 카운터
코드가 추가되거나 제거될 때 증가합니다. 속성:- 모든 표준 속성
type: ("added","removed")
풀 요청 카운터
Claude Code를 통해 풀 요청을 생성할 때 증가합니다. 속성:- 모든 표준 속성
커밋 카운터
Claude Code를 통해 git 커밋을 생성할 때 증가합니다. 속성:- 모든 표준 속성
비용 카운터
각 API 요청 후 증가합니다. 속성:- 모든 표준 속성
model: 모델 식별자 (예: “claude-sonnet-4-5-20250929”)
토큰 카운터
각 API 요청 후 증가합니다. 속성:- 모든 표준 속성
type: ("input","output","cacheRead","cacheCreation")model: 모델 식별자 (예: “claude-sonnet-4-5-20250929”)
코드 편집 도구 결정 카운터
사용자가 Edit, Write 또는 NotebookEdit 도구 사용을 수락하거나 거부할 때 증가합니다. 속성:- 모든 표준 속성
tool: 도구 이름 ("Edit","Write","NotebookEdit")decision: 사용자 결정 ("accept","reject")language: 편집된 파일의 프로그래밍 언어 (예:"TypeScript","Python","JavaScript","Markdown"). 인식되지 않는 파일 확장자의 경우"unknown"을 반환합니다.
활성 시간 카운터
Claude Code를 적극적으로 사용하는 실제 시간을 추적합니다 (유휴 시간 제외). 이 메트릭은 프롬프트 입력 또는 응답 수신과 같은 사용자 상호 작용 중에 증가합니다. 속성:- 모든 표준 속성
이벤트
Claude Code는 OpenTelemetry 로그/이벤트를 통해 다음 이벤트를 내보냅니다 (OTEL_LOGS_EXPORTER가 구성된 경우):
사용자 프롬프트 이벤트
사용자가 프롬프트를 제출할 때 로깅됩니다. 이벤트 이름:claude_code.user_prompt
속성:
- 모든 표준 속성
event.name:"user_prompt"event.timestamp: ISO 8601 타임스탬프prompt_length: 프롬프트 길이prompt: 프롬프트 콘텐츠 (기본적으로 수정됨,OTEL_LOG_USER_PROMPTS=1로 활성화)
도구 결과 이벤트
도구가 실행을 완료할 때 로깅됩니다. 이벤트 이름:claude_code.tool_result
속성:
- 모든 표준 속성
event.name:"tool_result"event.timestamp: ISO 8601 타임스탬프tool_name: 도구 이름success:"true"또는"false"duration_ms: 실행 시간 (밀리초)error: 오류 메시지 (실패한 경우)decision:"accept"또는"reject"source: 결정 출처 -"config","user_permanent","user_temporary","user_abort"또는"user_reject"tool_parameters: 도구별 매개변수를 포함하는 JSON 문자열 (사용 가능한 경우)- Bash 도구의 경우:
bash_command,full_command,timeout,description,sandbox포함
- Bash 도구의 경우:
API 요청 이벤트
Claude에 대한 각 API 요청에 대해 로깅됩니다. 이벤트 이름:claude_code.api_request
속성:
- 모든 표준 속성
event.name:"api_request"event.timestamp: ISO 8601 타임스탬프model: 사용된 모델 (예: “claude-sonnet-4-5-20250929”)cost_usd: USD 단위의 예상 비용duration_ms: 요청 지속 시간 (밀리초)input_tokens: 입력 토큰 수output_tokens: 출력 토큰 수cache_read_tokens: 캐시에서 읽은 토큰 수cache_creation_tokens: 캐시 생성에 사용된 토큰 수
API 오류 이벤트
Claude에 대한 API 요청이 실패할 때 로깅됩니다. 이벤트 이름:claude_code.api_error
속성:
- 모든 표준 속성
event.name:"api_error"event.timestamp: ISO 8601 타임스탬프model: 사용된 모델 (예: “claude-sonnet-4-5-20250929”)error: 오류 메시지status_code: HTTP 상태 코드 (해당하는 경우)duration_ms: 요청 지속 시간 (밀리초)attempt: 시도 번호 (재시도된 요청의 경우)
도구 결정 이벤트
도구 권한 결정이 내려질 때 로깅됩니다 (수락/거부). 이벤트 이름:claude_code.tool_decision
속성:
- 모든 표준 속성
event.name:"tool_decision"event.timestamp: ISO 8601 타임스탬프tool_name: 도구 이름 (예: “Read”, “Edit”, “Write”, “NotebookEdit” 등)decision:"accept"또는"reject"source: 결정 출처 -"config","user_permanent","user_temporary","user_abort"또는"user_reject"
메트릭 및 이벤트 데이터 해석
Claude Code에서 내보낸 메트릭은 사용 패턴 및 생산성에 대한 귀중한 통찰력을 제공합니다. 다음은 만들 수 있는 일반적인 시각화 및 분석입니다:사용 모니터링
| 메트릭 | 분석 기회 |
|---|---|
claude_code.token.usage | type (입력/출력), 사용자, 팀 또는 모델별로 분류 |
claude_code.session.count | 시간 경과에 따른 채택 및 참여 추적 |
claude_code.lines_of_code.count | 코드 추가/제거를 추적하여 생산성 측정 |
claude_code.commit.count & claude_code.pull_request.count | 개발 워크플로우에 미치는 영향 이해 |
비용 모니터링
claude_code.cost.usage 메트릭은 다음에 도움이 됩니다:
- 팀 또는 개인 간 사용 추세 추적
- 최적화를 위한 높은 사용 세션 식별
비용 메트릭은 근사값입니다. 공식 청구 데이터는 API 제공자 (Claude Console, AWS Bedrock 또는 Google Cloud Vertex)를 참조하세요.
경고 및 세분화
고려할 일반적인 경고:- 비용 급증
- 비정상적인 토큰 소비
- 특정 사용자의 높은 세션 볼륨
user.account_uuid, organization.id, session.id, model 및 app.version으로 세분화할 수 있습니다.
이벤트 분석
이벤트 데이터는 Claude Code 상호 작용에 대한 자세한 통찰력을 제공합니다: 도구 사용 패턴: 도구 결과 이벤트를 분석하여 다음을 식별합니다:- 가장 자주 사용되는 도구
- 도구 성공률
- 평균 도구 실행 시간
- 도구 유형별 오류 패턴
백엔드 고려 사항
메트릭 및 로그 백엔드 선택은 수행할 수 있는 분석 유형을 결정합니다:메트릭의 경우:
- 시계열 데이터베이스 (예: Prometheus): 비율 계산, 집계 메트릭
- 칼럼형 저장소 (예: ClickHouse): 복잡한 쿼리, 고유 사용자 분석
- 완전한 기능의 관찰성 플랫폼 (예: Honeycomb, Datadog): 고급 쿼리, 시각화, 경고
이벤트/로그의 경우:
- 로그 집계 시스템 (예: Elasticsearch, Loki): 전체 텍스트 검색, 로그 분석
- 칼럼형 저장소 (예: ClickHouse): 구조화된 이벤트 분석
- 완전한 기능의 관찰성 플랫폼 (예: Honeycomb, Datadog): 메트릭과 이벤트 간의 상관관계
서비스 정보
모든 메트릭 및 이벤트는 다음 리소스 속성과 함께 내보내집니다:service.name:claude-codeservice.version: 현재 Claude Code 버전os.type: 운영 체제 유형 (예:linux,darwin,windows)os.version: 운영 체제 버전 문자열host.arch: 호스트 아키텍처 (예:amd64,arm64)wsl.version: WSL 버전 번호 (Windows Subsystem for Linux에서 실행 중일 때만 표시)- 미터 이름:
com.anthropic.claude_code
ROI 측정 리소스
텔레메트리 설정, 비용 분석, 생산성 메트릭 및 자동화된 보고를 포함한 Claude Code의 투자 수익률 측정에 대한 포괄적인 가이드는 Claude Code ROI 측정 가이드를 참조하세요. 이 저장소는 즉시 사용 가능한 Docker Compose 구성, Prometheus 및 OpenTelemetry 설정, Linear와 같은 도구와 통합된 생산성 보고서 생성 템플릿을 제공합니다.보안/개인정보 보호 고려 사항
- 텔레메트리는 옵트인이며 명시적 구성이 필요합니다
- API 키 또는 파일 콘텐츠와 같은 민감한 정보는 메트릭 또는 이벤트에 포함되지 않습니다
- 사용자 프롬프트 콘텐츠는 기본적으로 수정됩니다 - 프롬프트 길이만 기록됩니다. 사용자 프롬프트 로깅을 활성화하려면
OTEL_LOG_USER_PROMPTS=1을 설정합니다