사용량 모니터링
OpenTelemetry 메트릭을 통해 Claude Code 사용량 모니터링하기
OpenTelemetry 지원은 현재 베타 버전이며 세부 사항이 변경될 수 있습니다.
Claude Code의 OpenTelemetry
Claude Code는 모니터링 및 관측성을 위한 OpenTelemetry(OTel) 메트릭을 지원합니다. 이 문서는 Claude Code에서 OTel을 활성화하고 구성하는 방법을 설명합니다.
모든 메트릭은 OpenTelemetry의 표준 메트릭 프로토콜을 통해 내보내는 시계열 데이터입니다. 메트릭 백엔드가 올바르게 구성되어 있고 집계 세분성이 모니터링 요구 사항을 충족하는지 확인하는 것은 사용자의 책임입니다.
빠른 시작
환경 변수를 사용하여 OpenTelemetry 구성:
기본 내보내기 간격은 10분입니다. 설정 중에는 디버깅 목적으로 더 짧은 간격을 사용할 수 있습니다. 프로덕션 환경에서는 이 값을 재설정하는 것을 잊지 마세요.
전체 구성 옵션은 OpenTelemetry 사양을 참조하세요.
관리자 구성
관리자는 관리 설정 파일을 통해 모든 사용자에 대한 OpenTelemetry 설정을 구성할 수 있습니다. 이를 통해 조직 전체의 원격 측정 설정을 중앙에서 제어할 수 있습니다. 설정이 적용되는 방식에 대한 자세한 내용은 구성 계층을 참조하세요.
관리 설정 파일 위치:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json
- Linux:
/etc/claude-code/managed-settings.json
관리 설정 구성 예시:
관리 설정은 MDM(모바일 기기 관리) 또는 기타 기기 관리 솔루션을 통해 배포할 수 있습니다. 관리 설정 파일에 정의된 환경 변수는 우선 순위가 높으며 사용자가 재정의할 수 없습니다.
구성 세부 정보
일반 구성 변수
환경 변수 | 설명 | 예시 값 |
---|---|---|
CLAUDE_CODE_ENABLE_TELEMETRY | 원격 측정 수집 활성화(필수) | 1 |
OTEL_METRICS_EXPORTER | 사용할 내보내기 도구 유형(쉼표로 구분) | console , otlp , prometheus |
OTEL_EXPORTER_OTLP_PROTOCOL | OTLP 내보내기 도구용 프로토콜 | grpc , http/json , http/protobuf |
OTEL_EXPORTER_OTLP_ENDPOINT | OTLP 수집기 엔드포인트 | http://localhost:4317 |
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 | 내보내기 간격(밀리초, 기본값: 10000) | 5000 , 60000 |
메트릭 카디널리티 제어
다음 환경 변수는 카디널리티를 관리하기 위해 메트릭에 포함되는 속성을 제어합니다:
환경 변수 | 설명 | 기본값 | 비활성화 예시 |
---|---|---|---|
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 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 |
메트릭 세부 정보
모든 메트릭은 다음과 같은 표준 속성을 공유합니다:
session.id
: 고유 세션 식별자(OTEL_METRICS_INCLUDE_SESSION_ID
로 제어)app.version
: 현재 Claude Code 버전(OTEL_METRICS_INCLUDE_VERSION
으로 제어)organization.id
: 조직 UUID(인증된 경우)user.account_uuid
: 계정 UUID(인증된 경우,OTEL_METRICS_INCLUDE_ACCOUNT_UUID
로 제어)
1. 세션 카운터
각 세션 시작 시 발생합니다.
2. 코드 라인 카운터
코드가 추가되거나 제거될 때 발생합니다.
- 추가 속성:
type
("added"
또는"removed"
)
3. 풀 리퀘스트 카운터
Claude Code를 통해 풀 리퀘스트를 생성할 때 발생합니다.
4. 커밋 카운터
Claude Code를 통해 git 커밋을 생성할 때 발생합니다.
5. 비용 카운터
각 API 요청 후 발생합니다.
- 추가 속성:
model
6. 토큰 카운터
각 API 요청 후 발생합니다.
- 추가 속성:
type
("input"
,"output"
,"cacheRead"
,"cacheCreation"
) 및model
메트릭 데이터 해석
이러한 메트릭은 사용 패턴, 생산성 및 비용에 대한 인사이트를 제공합니다:
사용량 모니터링
메트릭 | 분석 기회 |
---|---|
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 제공업체(Anthropic Console, AWS Bedrock 또는 Google Cloud Vertex)를 참조하세요.
알림 및 세분화
고려할 일반적인 알림:
- 비용 급증
- 비정상적인 토큰 소비
- 특정 사용자의 높은 세션 볼륨
모든 메트릭은 user.account_uuid
, organization.id
, session.id
, model
및 app.version
으로 세분화할 수 있습니다.
백엔드 고려 사항
백엔드 유형 | 최적 용도 |
---|---|
시계열 데이터베이스(Prometheus) | 비율 계산, 집계된 메트릭 |
컬럼형 저장소(ClickHouse) | 복잡한 쿼리, 고유 사용자 분석 |
관측성 플랫폼(Honeycomb, Datadog) | 고급 쿼리, 시각화, 알림 |
DAU/WAU/MAU 메트릭의 경우 효율적인 고유 값 쿼리를 지원하는 백엔드를 선택하세요.
서비스 정보
모든 메트릭은 다음과 함께 내보내집니다:
- 서비스 이름:
claude-code
- 서비스 버전: 현재 Claude Code 버전
- 미터 이름:
com.anthropic.claude_code
보안 고려 사항
- 원격 측정은 옵트인 방식이며 명시적 구성이 필요합니다
- API 키나 파일 내용과 같은 민감한 정보는 메트릭에 절대 포함되지 않습니다