메인 콘텐츠로 건너뛰기
OpenTelemetry(OTel)를 통해 원격 측정 데이터를 내보내 조직 전체에서 Claude Code 사용, 비용 및 도구 활동을 추적합니다. Claude Code는 표준 메트릭 프로토콜을 통해 메트릭을 시계열 데이터로 내보내고, 로그/이벤트 프로토콜을 통해 이벤트를 내보냅니다. 메트릭 및 로그 백엔드를 구성하여 모니터링 요구 사항과 일치하도록 합니다.

빠른 시작

환경 변수를 사용하여 OpenTelemetry를 구성합니다:
# 1. 원격 측정 활성화
export CLAUDE_CODE_ENABLE_TELEMETRY=1

# 2. 내보내기 선택 (둘 다 선택 사항 - 필요한 것만 구성)
export OTEL_METRICS_EXPORTER=otlp       # 옵션: otlp, prometheus, console
export OTEL_LOGS_EXPORTER=otlp          # 옵션: otlp, console

# 3. OTLP 엔드포인트 구성 (OTLP 내보내기용)
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# 4. 인증 설정 (필요한 경우)
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-token"

# 5. 디버깅용: 내보내기 간격 단축
export OTEL_METRIC_EXPORT_INTERVAL=10000  # 10초 (기본값: 60000ms)
export OTEL_LOGS_EXPORT_INTERVAL=5000     # 5초 (기본값: 5000ms)

# 6. Claude Code 실행
claude
기본 내보내기 간격은 메트릭의 경우 60초, 로그의 경우 5초입니다. 설정 중에 디버깅 목적으로 더 짧은 간격을 사용할 수 있습니다. 프로덕션 사용을 위해 이를 재설정하는 것을 잊지 마세요.
전체 구성 옵션은 OpenTelemetry 사양을 참조하세요.

관리자 구성

관리자는 관리 설정 파일을 통해 모든 사용자에 대한 OpenTelemetry 설정을 구성할 수 있습니다. 이를 통해 조직 전체에서 원격 측정 설정을 중앙에서 제어할 수 있습니다. 설정이 적용되는 방식에 대한 자세한 내용은 설정 우선순위를 참조하세요. 관리 설정 구성 예:
{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer example-token"
  }
}
관리 설정은 MDM(Mobile Device Management) 또는 기타 장치 관리 솔루션을 통해 배포할 수 있습니다. 관리 설정 파일에 정의된 환경 변수는 높은 우선순위를 가지며 사용자가 재정의할 수 없습니다.

구성 세부 정보

일반적인 구성 변수

환경 변수설명예제 값
CLAUDE_CODE_ENABLE_TELEMETRY원격 측정 수집 활성화 (필수)1
OTEL_METRICS_EXPORTER메트릭 내보내기 유형 (쉼표로 구분)console, otlp, prometheus
OTEL_LOGS_EXPORTER로그/이벤트 내보내기 유형 (쉼표로 구분)console, otlp
OTEL_EXPORTER_OTLP_PROTOCOLOTLP 내보내기 프로토콜 (모든 신호에 적용)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_ENDPOINTOTLP 메트릭 엔드포인트 (일반 설정 재정의)http://localhost:4318/v1/metrics
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL로그 프로토콜 (일반 설정 재정의)grpc, http/json, http/protobuf
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTOTLP 로그 엔드포인트 (일반 설정 재정의)http://localhost:4318/v1/logs
OTEL_EXPORTER_OTLP_HEADERSOTLP용 인증 헤더Authorization=Bearer token
OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEYmTLS 인증용 클라이언트 키클라이언트 키 파일 경로
OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATEmTLS 인증용 클라이언트 인증서클라이언트 인증서 파일 경로
OTEL_METRIC_EXPORT_INTERVAL내보내기 간격 (밀리초 단위, 기본값: 60000)5000, 60000
OTEL_LOGS_EXPORT_INTERVAL로그 내보내기 간격 (밀리초 단위, 기본값: 5000)1000, 10000
OTEL_LOG_USER_PROMPTS사용자 프롬프트 콘텐츠 로깅 활성화 (기본값: 비활성화)1로 활성화
OTEL_LOG_TOOL_DETAILS도구 이벤트에서 도구 입력 인수, MCP 서버/도구 이름 및 스킬 이름 로깅 활성화 (기본값: 비활성화)1로 활성화
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE메트릭 시간성 선호도 (기본값: delta). 백엔드가 누적 시간성을 예상하는 경우 cumulative로 설정delta, cumulative
CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS동적 헤더 새로 고침 간격 (기본값: 1740000ms / 29분)900000

메트릭 카디널리티 제어

다음 환경 변수는 카디널리티를 관리하기 위해 메트릭에 포함되는 속성을 제어합니다:
환경 변수설명기본값비활성화 예
OTEL_METRICS_INCLUDE_SESSION_ID메트릭에 session.id 속성 포함truefalse
OTEL_METRICS_INCLUDE_VERSION메트릭에 app.version 속성 포함falsetrue
OTEL_METRICS_INCLUDE_ACCOUNT_UUID메트릭에 user.account_uuid 및 user.account_id 속성 포함truefalse
이러한 변수는 메트릭의 카디널리티를 제어하는 데 도움이 되며, 이는 메트릭 백엔드의 저장소 요구 사항 및 쿼리 성능에 영향을 미칩니다. 낮은 카디널리티는 일반적으로 더 나은 성능과 낮은 저장소 비용을 의미하지만 분석을 위한 세분화된 데이터는 적습니다.

동적 헤더

동적 인증이 필요한 엔터프라이즈 환경의 경우 스크립트를 구성하여 헤더를 동적으로 생성할 수 있습니다:

설정 구성

.claude/settings.json에 추가:
{
  "otelHeadersHelper": "/bin/generate_opentelemetry_headers.sh"
}

스크립트 요구 사항

스크립트는 HTTP 헤더를 나타내는 문자열 키-값 쌍이 있는 유효한 JSON을 출력해야 합니다:
#!/bin/bash
# 예: 여러 헤더
echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

새로 고침 동작

헤더 도우미 스크립트는 시작 시 그리고 그 이후 주기적으로 실행되어 토큰 새로 고침을 지원합니다. 기본적으로 스크립트는 29분마다 실행됩니다. CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS 환경 변수로 간격을 사용자 정의합니다.

다중 팀 조직 지원

여러 팀 또는 부서가 있는 조직은 OTEL_RESOURCE_ATTRIBUTES 환경 변수를 사용하여 다양한 그룹을 구분하기 위한 사용자 정의 속성을 추가할 수 있습니다:
# 팀 식별을 위한 사용자 정의 속성 추가
export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"
이러한 사용자 정의 속성은 모든 메트릭 및 이벤트에 포함되어 다음을 수행할 수 있습니다:
  • 팀 또는 부서별로 메트릭 필터링
  • 비용 센터별 비용 추적
  • 팀별 대시보드 생성
  • 특정 팀에 대한 경고 설정
OTEL_RESOURCE_ATTRIBUTES에 대한 중요한 형식 요구 사항:OTEL_RESOURCE_ATTRIBUTES 환경 변수는 쉼표로 구분된 key=value 쌍을 사용하며 엄격한 형식 요구 사항이 있습니다:
  • 공백 허용 안 함: 값에 공백이 포함될 수 없습니다. 예를 들어 user.organizationName=My Company는 유효하지 않습니다
  • 형식: 쉼표로 구분된 키=값 쌍이어야 합니다: key1=value1,key2=value2
  • 허용된 문자: 제어 문자, 공백, 큰따옴표, 쉼표, 세미콜론 및 백슬래시를 제외한 US-ASCII 문자만 허용됩니다
  • 특수 문자: 허용된 범위 외의 문자는 퍼센트 인코딩되어야 합니다
예:
# ❌ 유효하지 않음 - 공백 포함
export OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"

# ✅ 유효함 - 대신 언더스코어 또는 camelCase 사용
export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"
export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"

# ✅ 유효함 - 필요한 경우 특수 문자를 퍼센트 인코딩
export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"
참고: 값을 따옴표로 감싸도 공백이 이스케이프되지 않습니다. 예를 들어 org.name="My Company"My Company가 아닌 리터럴 값 "My Company" (따옴표 포함)를 생성합니다.

예제 구성

claude를 실행하기 전에 이러한 환경 변수를 설정합니다. 각 블록은 다양한 내보내기 또는 배포 시나리오에 대한 완전한 구성을 보여줍니다:
# 콘솔 디버깅 (1초 간격)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console
export OTEL_METRIC_EXPORT_INTERVAL=1000

# OTLP/gRPC
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Prometheus
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=prometheus

# 여러 내보내기
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console,otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/json

# 메트릭 및 로그에 대한 다양한 엔드포인트/백엔드
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318
export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

# 메트릭만 (이벤트/로그 없음)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# 이벤트/로그만 (메트릭 없음)
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

사용 가능한 메트릭 및 이벤트

표준 속성

모든 메트릭 및 이벤트는 다음 표준 속성을 공유합니다:
속성설명제어 대상
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)
user.account_idAnthropic 관리 API와 일치하는 태그 형식의 계정 ID (인증된 경우) (예: user_01BWBeN28...)OTEL_METRICS_INCLUDE_ACCOUNT_UUID (기본값: true)
user.id익명 장치/설치 식별자 (Claude Code 설치당 생성됨)항상 포함됨
user.email사용자 이메일 주소 (OAuth를 통해 인증된 경우)사용 가능할 때 항상 포함됨
terminal.type터미널 유형 (예: iTerm.app, vscode, cursor, tmux)감지될 때 항상 포함됨
이벤트는 추가로 다음 속성을 포함합니다. 이들은 무한 카디널리티를 야기할 수 있으므로 메트릭에 절대 첨부되지 않습니다:
  • prompt.id: 사용자 프롬프트를 다음 프롬프트까지의 모든 후속 이벤트와 상관시키는 UUID입니다. 이벤트 상관 속성을 참조하세요.
  • workspace.host_paths: 데스크톱 앱에서 선택한 호스트 작업 공간 디렉토리 (문자열 배열)

메트릭

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.usageClaude Code 세션의 비용USD
claude_code.token.usage사용된 토큰 수tokens
claude_code.code_edit_tool.decision코드 편집 도구 권한 결정 수count
claude_code.active_time.total총 활성 시간 (초)s

메트릭 세부 정보

각 메트릭은 위에 나열된 표준 속성을 포함합니다. 추가 컨텍스트별 속성이 있는 메트릭은 아래에 표시됩니다.

세션 카운터

각 세션 시작 시 증가합니다. 속성:

코드 라인 카운터

코드가 추가되거나 제거될 때 증가합니다. 속성:

풀 요청 카운터

Claude Code를 통해 풀 요청을 생성할 때 증가합니다. 속성:

커밋 카운터

Claude Code를 통해 git 커밋을 생성할 때 증가합니다. 속성:

비용 카운터

각 API 요청 후 증가합니다. 속성:
  • 모든 표준 속성
  • model: 모델 식별자 (예: “claude-sonnet-4-6”)

토큰 카운터

각 API 요청 후 증가합니다. 속성:
  • 모든 표준 속성
  • type: ("input", "output", "cacheRead", "cacheCreation")
  • model: 모델 식별자 (예: “claude-sonnet-4-6”)

코드 편집 도구 결정 카운터

사용자가 Edit, Write 또는 NotebookEdit 도구 사용을 수락하거나 거부할 때 증가합니다. 속성:
  • 모든 표준 속성
  • tool_name: 도구 이름 ("Edit", "Write", "NotebookEdit")
  • decision: 사용자 결정 ("accept", "reject")
  • source: 결정 출처 - "config", "hook", "user_permanent", "user_temporary", "user_abort" 또는 "user_reject"
  • language: 편집된 파일의 프로그래밍 언어 (예: "TypeScript", "Python", "JavaScript", "Markdown"). 인식되지 않는 파일 확장자의 경우 "unknown"을 반환합니다.

활성 시간 카운터

Claude Code를 적극적으로 사용하는 실제 시간을 추적합니다 (유휴 시간 제외). 이 메트릭은 사용자 상호 작용 (입력, 응답 읽기) 중 및 CLI 처리 (도구 실행, AI 응답 생성) 중에 증가합니다. 속성:
  • 모든 표준 속성
  • type: 키보드 상호 작용의 경우 "user", 도구 실행 및 AI 응답의 경우 "cli"

이벤트

Claude Code는 OpenTelemetry 로그/이벤트를 통해 다음 이벤트를 내보냅니다 (OTEL_LOGS_EXPORTER가 구성된 경우):

이벤트 상관 속성

사용자가 프롬프트를 제출하면 Claude Code는 여러 API 호출을 수행하고 여러 도구를 실행할 수 있습니다. prompt.id 속성을 사용하면 이러한 모든 이벤트를 해당 이벤트를 트리거한 단일 프롬프트에 연결할 수 있습니다.
속성설명
prompt.id단일 사용자 프롬프트 처리 중에 생성된 모든 이벤트를 연결하는 UUID v4 식별자
단일 프롬프트로 트리거된 모든 활동을 추적하려면 특정 prompt.id 값으로 이벤트를 필터링합니다. 이는 user_prompt 이벤트, 모든 api_request 이벤트 및 해당 프롬프트 처리 중에 발생한 모든 tool_result 이벤트를 반환합니다.
prompt.id는 각 프롬프트가 고유 ID를 생성하여 계속 증가하는 시계열 수를 만들기 때문에 의도적으로 메트릭에서 제외됩니다. 이벤트 수준 분석 및 감사 추적에만 사용합니다.

사용자 프롬프트 이벤트

사용자가 프롬프트를 제출할 때 기록됩니다. 이벤트 이름: claude_code.user_prompt 속성:
  • 모든 표준 속성
  • event.name: "user_prompt"
  • event.timestamp: ISO 8601 타임스탬프
  • event.sequence: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터
  • prompt_length: 프롬프트의 길이
  • prompt: 프롬프트 콘텐츠 (기본적으로 수정됨, OTEL_LOG_USER_PROMPTS=1로 활성화)

도구 결과 이벤트

도구가 실행을 완료할 때 기록됩니다. 이벤트 이름: claude_code.tool_result 속성:
  • 모든 표준 속성
  • event.name: "tool_result"
  • event.timestamp: ISO 8601 타임스탬프
  • event.sequence: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터
  • tool_name: 도구의 이름
  • success: "true" 또는 "false"
  • duration_ms: 실행 시간 (밀리초)
  • error: 오류 메시지 (실패한 경우)
  • decision_type: "accept" 또는 "reject"
  • decision_source: 결정 출처 - "config", "hook", "user_permanent", "user_temporary", "user_abort" 또는 "user_reject"
  • tool_result_size_bytes: 도구 결과의 크기 (바이트)
  • mcp_server_scope: MCP 서버 범위 식별자 (MCP 도구의 경우)
  • tool_parameters: 도구별 매개변수를 포함하는 JSON 문자열 (사용 가능한 경우)
    • Bash 도구의 경우: bash_command, full_command, timeout, description, dangerouslyDisableSandboxgit_commit_id (git commit 명령이 성공할 때 커밋 SHA) 포함
    • MCP 도구의 경우 (OTEL_LOG_TOOL_DETAILS=1일 때): mcp_server_name, mcp_tool_name 포함
    • Skill 도구의 경우 (OTEL_LOG_TOOL_DETAILS=1일 때): skill_name 포함
  • tool_input (OTEL_LOG_TOOL_DETAILS=1일 때): JSON 직렬화된 도구 인수입니다. 512자를 초과하는 개별 값은 잘리고, 전체 페이로드는 약 4K 문자로 제한됩니다. MCP 도구를 포함한 모든 도구에 적용됩니다.

API 요청 이벤트

Claude에 대한 각 API 요청에 대해 기록됩니다. 이벤트 이름: claude_code.api_request 속성:
  • 모든 표준 속성
  • event.name: "api_request"
  • event.timestamp: ISO 8601 타임스탬프
  • event.sequence: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터
  • model: 사용된 모델 (예: “claude-sonnet-4-6”)
  • cost_usd: USD 단위의 예상 비용
  • duration_ms: 요청 지속 시간 (밀리초)
  • input_tokens: 입력 토큰 수
  • output_tokens: 출력 토큰 수
  • cache_read_tokens: 캐시에서 읽은 토큰 수
  • cache_creation_tokens: 캐시 생성에 사용된 토큰 수
  • speed: 빠른 모드가 활성화되었는지 여부를 나타내는 "fast" 또는 "normal"

API 오류 이벤트

Claude에 대한 API 요청이 실패할 때 기록됩니다. 이벤트 이름: claude_code.api_error 속성:
  • 모든 표준 속성
  • event.name: "api_error"
  • event.timestamp: ISO 8601 타임스탬프
  • event.sequence: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터
  • model: 사용된 모델 (예: “claude-sonnet-4-6”)
  • error: 오류 메시지
  • status_code: HTTP 상태 코드 (문자열) 또는 HTTP가 아닌 오류의 경우 "undefined"
  • duration_ms: 요청 지속 시간 (밀리초)
  • attempt: 시도 번호 (재시도된 요청의 경우)
  • speed: 빠른 모드가 활성화되었는지 여부를 나타내는 "fast" 또는 "normal"

도구 결정 이벤트

도구 권한 결정이 내려질 때 기록됩니다 (수락/거부). 이벤트 이름: claude_code.tool_decision 속성:
  • 모든 표준 속성
  • event.name: "tool_decision"
  • event.timestamp: ISO 8601 타임스탬프
  • event.sequence: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터
  • tool_name: 도구의 이름 (예: “Read”, “Edit”, “Write”, “NotebookEdit”)
  • decision: "accept" 또는 "reject"
  • source: 결정 출처 - "config", "hook", "user_permanent", "user_temporary", "user_abort" 또는 "user_reject"

메트릭 및 이벤트 데이터 해석

내보낸 메트릭 및 이벤트는 다양한 분석을 지원합니다:

사용 모니터링

메트릭분석 기회
claude_code.token.usagetype (입력/출력), 사용자, 팀 또는 모델별로 분류
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, user.account_id, organization.id, session.id, modelapp.version으로 세분화할 수 있습니다.

이벤트 분석

이벤트 데이터는 Claude Code 상호 작용에 대한 자세한 통찰력을 제공합니다: 도구 사용 패턴: 도구 결과 이벤트를 분석하여 다음을 식별합니다:
  • 가장 자주 사용되는 도구
  • 도구 성공률
  • 평균 도구 실행 시간
  • 도구 유형별 오류 패턴
성능 모니터링: API 요청 지속 시간 및 도구 실행 시간을 추적하여 성능 병목 현상을 식별합니다.

백엔드 고려 사항

메트릭 및 로그 백엔드 선택은 수행할 수 있는 분석 유형을 결정합니다:

메트릭의 경우

  • 시계열 데이터베이스 (예: Prometheus): 비율 계산, 집계된 메트릭
  • 컬럼형 저장소 (예: ClickHouse): 복잡한 쿼리, 고유 사용자 분석
  • 완전한 기능의 관찰성 플랫폼 (예: Honeycomb, Datadog): 고급 쿼리, 시각화, 경고

이벤트/로그의 경우

  • 로그 집계 시스템 (예: Elasticsearch, Loki): 전체 텍스트 검색, 로그 분석
  • 컬럼형 저장소 (예: ClickHouse): 구조화된 이벤트 분석
  • 완전한 기능의 관찰성 플랫폼 (예: Honeycomb, Datadog): 메트릭과 이벤트 간의 상관 관계
일일/주간/월간 활성 사용자 (DAU/WAU/MAU) 메트릭이 필요한 조직의 경우 효율적인 고유 값 쿼리를 지원하는 백엔드를 고려하세요.

서비스 정보

모든 메트릭 및 이벤트는 다음 리소스 속성과 함께 내보내집니다:
  • service.name: claude-code
  • service.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와 같은 도구와 통합된 생산성 보고서 생성 템플릿을 제공합니다.

보안 및 개인 정보 보호

  • 원격 측정은 선택 사항이며 명시적 구성이 필요합니다
  • 원본 파일 콘텐츠 및 코드 스니펫은 메트릭 또는 이벤트에 포함되지 않습니다. 도구 실행 이벤트는 tool_parameters 필드에 bash 명령 및 파일 경로를 포함하며, 이는 민감한 값을 포함할 수 있습니다. 명령에 비밀이 포함될 수 있는 경우 원격 측정 백엔드를 구성하여 tool_parameters를 필터링하거나 수정합니다
  • OAuth를 통해 인증된 경우 user.email이 원격 측정 속성에 포함됩니다. 조직에서 이것이 우려 사항인 경우 원격 측정 백엔드와 함께 작업하여 이 필드를 필터링하거나 수정합니다
  • 사용자 프롬프트 콘텐츠는 기본적으로 수집되지 않습니다. 프롬프트 길이만 기록됩니다. 프롬프트 콘텐츠를 포함하려면 OTEL_LOG_USER_PROMPTS=1을 설정합니다
  • 도구 입력 인수는 기본적으로 기록되지 않습니다. 이를 포함하려면 OTEL_LOG_TOOL_DETAILS=1을 설정합니다. 활성화되면 tool_result 이벤트는 MCP 서버/도구 이름 및 스킬 이름과 파일 경로, URL, 검색 패턴 및 기타 인수가 포함된 tool_input 속성을 포함합니다. 512자를 초과하는 개별 값은 잘리고 전체는 약 4K 문자로 제한되지만 인수에는 여전히 민감한 값이 포함될 수 있습니다. 필요에 따라 tool_input을 필터링하거나 수정하도록 원격 측정 백엔드를 구성합니다

Amazon Bedrock에서 Claude Code 모니터링

Amazon Bedrock의 Claude Code 사용 모니터링에 대한 자세한 지침은 Claude Code 모니터링 구현 (Bedrock)을 참조하세요.