123| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` 이벤트에서 어시스턴트 응답 텍스트 로깅 활성화 (기본값: 비활성화). 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`의 값으로 폴백됩니다. Claude Code v2.1.193 이상 필요 | `1`로 활성화, `0`으로 수정된 상태 유지 |123| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` 이벤트에서 어시스턴트 응답 텍스트 로깅 활성화 (기본값: 비활성화). 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`의 값으로 폴백됩니다. Claude Code v2.1.193 이상 필요 | `1`로 활성화, `0`으로 수정된 상태 유지 |
124| `OTEL_LOG_TOOL_DETAILS` | 도구 이벤트 및 추적 스팬 속성에서 도구 매개변수 및 입력 인수 로깅 활성화: Bash 명령, MCP 서버 및 도구 이름, 스킬 이름, 사용자 작성 워크플로우 이름 및 도구 입력. 또한 `user_prompt` 이벤트에서 사용자 정의, 플러그인 및 MCP 명령 이름을 활성화합니다 (기본값: 비활성화). Claude Desktop이 소유한 세션에서 Claude Desktop의 기본 제공 서버의 경우 플래그가 꺼져 있어도 `tool_decision`/`tool_result`에서 `mcp_server_name`/`mcp_tool_name`이 내보내집니다. 예외는 Claude Code v2.1.214 이상 필요 | `1`로 활성화 |124| `OTEL_LOG_TOOL_DETAILS` | 도구 이벤트 및 추적 스팬 속성에서 도구 매개변수 및 입력 인수 로깅 활성화: Bash 명령, MCP 서버 및 도구 이름, 스킬 이름, 사용자 작성 워크플로우 이름 및 도구 입력. 또한 `user_prompt` 이벤트에서 사용자 정의, 플러그인 및 MCP 명령 이름을 활성화합니다 (기본값: 비활성화). Claude Desktop이 소유한 세션에서 Claude Desktop의 기본 제공 서버의 경우 플래그가 꺼져 있어도 `tool_decision`/`tool_result`에서 `mcp_server_name`/`mcp_tool_name`이 내보내집니다. 예외는 Claude Code v2.1.214 이상 필요 | `1`로 활성화 |
125| `OTEL_LOG_TOOL_CONTENT` | [`tool.output` 스팬 이벤트](#tool-output-span-event)에서 도구 콘텐츠 로깅 활성화 (기본값: 비활성화). 스팬 속성은 [자신의 게이트](#new-context-gates) 아래에서 도구 콘텐츠를 전달합니다. [추적](#traces-beta)이 필요합니다. 콘텐츠는 콘텐츠 제한 (기본값 60KB)에서 잘립니다 | `1`로 활성화 |125| `OTEL_LOG_TOOL_CONTENT` | [`tool.output` 스팬 이벤트](#tool-output-span-event)에서 도구 콘텐츠 로깅 활성화 (기본값: 비활성화). 스팬 속성은 [자신의 게이트](#new-context-gates) 아래에서 도구 콘텐츠를 전달합니다. [추적](#traces-beta)이 필요합니다. 콘텐츠는 콘텐츠 제한 (기본값 60KB)에서 잘립니다 | `1`로 활성화 |
126| `OTEL_LOG_MANAGED_SETTINGS` | 수정된 관리 설정 및 수정 전 설정의 SHA-256 다이제스트를 [관리 설정 해결됨](#managed-settings-resolved-event) 이벤트에 추가합니다 (기본값: 비활성화). 프로젝트 또는 로컬 설정의 값은 이를 켜지 않습니다. Claude Code v2.1.274 이상 필요 | `1`로 활성화 |
126| `OTEL_LOG_RAW_API_BODIES` | 전체 Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다 (기본값: 비활성화). 본문에는 전체 대화 기록이 포함됩니다. 이를 활성화하면 `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` 및 `OTEL_LOG_TOOL_CONTENT`가 공개할 모든 것에 동의하는 것을 의미합니다 | `1`로 콘텐츠 제한 (기본값 60KB)에서 잘린 인라인 본문, 또는 `file:<dir>`로 디스크의 잘리지 않은 본문과 이벤트의 `body_ref` 포인터 |127| `OTEL_LOG_RAW_API_BODIES` | 전체 Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다 (기본값: 비활성화). 본문에는 전체 대화 기록이 포함됩니다. 이를 활성화하면 `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` 및 `OTEL_LOG_TOOL_CONTENT`가 공개할 모든 것에 동의하는 것을 의미합니다 | `1`로 콘텐츠 제한 (기본값 60KB)에서 잘린 인라인 본문, 또는 `file:<dir>`로 디스크의 잘리지 않은 본문과 이벤트의 `body_ref` 포인터 |
127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠 제한: 모델 응답, 도구 콘텐츠, 시스템 프롬프트 및 원본 API 본문과 같은 콘텐츠 포함 속성의 최대 길이 (UTF-16 코드 단위, 기본값: 61440, 즉 60KB). 기본값은 속성 값을 64KB로 제한하는 백엔드용으로 크기가 조정되었습니다. 백엔드가 더 큰 값을 허용하는 경우에만 증가시키거나 원격 측정 볼륨을 줄이기 위해 감소시킵니다. OpenTelemetry SDK 속성 제한 `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` 또는 해당 로그레코드 및 스팬 변형이 더 낮게 설정된 경우 Claude Code는 `[TRUNCATED ...]` 마커가 SDK 제한 내에 유지되도록 더 작은 값에서 잘립니다. Claude Code v2.1.214 이상 필요 | `262144` |128| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠 제한: 모델 응답, 도구 콘텐츠, 시스템 프롬프트 및 원본 API 본문과 같은 콘텐츠 포함 속성의 최대 길이 (UTF-16 코드 단위, 기본값: 61440, 즉 60KB). 기본값은 속성 값을 64KB로 제한하는 백엔드용으로 크기가 조정되었습니다. 백엔드가 더 큰 값을 허용하는 경우에만 증가시키거나 원격 측정 볼륨을 줄이기 위해 감소시킵니다. OpenTelemetry SDK 속성 제한 `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` 또는 해당 로그레코드 및 스팬 변형이 더 낮게 설정된 경우 Claude Code는 `[TRUNCATED ...]` 마커가 SDK 제한 내에 유지되도록 더 작은 값에서 잘립니다. Claude Code v2.1.214 이상 필요 | `262144` |
128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 메트릭 시간성 선호도 (기본값: `delta`). 백엔드가 누적 시간성을 예상하는 경우 `cumulative`로 설정 | `delta`, `cumulative` |129| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | 메트릭 시간성 선호도 (기본값: `delta`). 백엔드가 누적 시간성을 예상하는 경우 `cumulative`로 설정 | `delta`, `cumulative` |
241| `workflow.run_id` | 이 에이전트를 생성한 [Workflow](/docs/ko/workflows) 도구 실행의 실행 식별자 (접두사 `wf_`). 워크플로우에 의해 생성되지 않은 에이전트의 경우 없음 | |242| `workflow.run_id` | 이 에이전트를 생성한 [Workflow](/docs/ko/workflows) 도구 실행의 실행 식별자 (접두사 `wf_`). 워크플로우에 의해 생성되지 않은 에이전트의 경우 없음 | |
242| `workflow.name` | 이 에이전트를 생성한 워크플로우의 이름. 사용자 작성 이름은 게이트가 설정되지 않으면 `custom`으로 대체됩니다 | `OTEL_LOG_TOOL_DETAILS` |243| `workflow.name` | 이 에이전트를 생성한 워크플로우의 이름. 사용자 작성 이름은 게이트가 설정되지 않으면 `custom`으로 대체됩니다 | `OTEL_LOG_TOOL_DETAILS` |
243| `speed` | `fast` 또는 `normal` | |244| `speed` | `fast` 또는 `normal` | |
245| `effort` | [노력 수준](/docs/ko/model-config#adjust-effort-level) (요청에 적용됨): `low`, `medium`, `high`, `xhigh` 또는 `max`. Claude Code가 노력 수준을 보내지 않을 때 (예: 노력을 지원하지 않는 모델)는 없음. Claude Code v2.1.274 이상 필요 | |
244| `llm_request.context` | 부모 스팬에 따라 `interaction`, `tool` 또는 `standalone` | |246| `llm_request.context` | 부모 스팬에 따라 `interaction`, `tool` 또는 `standalone` | |
245| `duration_ms` | 재시도를 포함한 벽시계 지속 시간 | |247| `duration_ms` | 재시도를 포함한 벽시계 지속 시간 | |
246| `ttft_ms` | 첫 번째 토큰까지의 시간 (밀리초) | |248| `ttft_ms` | 첫 번째 토큰까지의 시간 (밀리초) | |
385echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"387echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"
386```388```
387 389
388도우미가 실패하거나 이러한 요구 사항을 충족하지 않는 출력을 인쇄하면 Claude Code는 다음에서 오류를 보고합니다:390도우미가 실패하거나 이러한 요구 사항을 충족하지 않는 출력을 인쇄하면 내보내기가 실패하고 도우미가 다시 작동할 때까지 세션에서 원격 측정 백엔드가 아무것도 받지 못합니다. Claude Code는 다음에서 오류를 보고합니다:
389 391
392* 대화형 세션의 경고 알림 (도우미가 처음 실패할 때 세션당 한 번 표시되는 [`otelHeadersHelper failed; telemetry is not being exported`](/docs/ko/errors#otelheadershelper-failed))
390* `/status` 출력393* `/status` 출력
391* [`--debug`](/docs/ko/cli-reference#cli-flags)로 실행하거나 세션에서 `/debug`를 실행한 후의 디버그 로그394* [`--debug`](/docs/ko/cli-reference#cli-flags)로 실행하거나 세션에서 `/debug`를 실행한 후의 디버그 로그
392* `-p`로 시작된 비대화형 세션의 stderr395* `-p`로 시작된 비대화형 세션의 stderr
531| `organization.id` | 조직 UUID (인증된 경우) | 사용 가능할 때 항상 포함됨 |534| `organization.id` | 조직 UUID (인증된 경우) | 사용 가능할 때 항상 포함됨 |
532| `user.account_uuid` | 계정 UUID (인증된 경우) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (기본값: true) |535| `user.account_uuid` | 계정 UUID (인증된 경우) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (기본값: true) |
533| `user.account_id` | Anthropic 관리자 API와 일치하는 태그 형식의 계정 ID (인증된 경우)(예: `user_01BWBeN28...`) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (기본값: true) |536| `user.account_id` | Anthropic 관리자 API와 일치하는 태그 형식의 계정 ID (인증된 경우)(예: `user_01BWBeN28...`) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (기본값: true) |
534| `user.id` | 첫 실행 시 생성되고 `~/.claude.json`에 저장되는 무작위 익명 식별자입니다. 개인 정보를 포함하지 않으며 Claude 계정에서 파생되지 않습니다. 파일을 삭제하면 다음 실행 시 새로운 관련 없는 값이 생성됩니다. | 항상 포함됨 |537| `user.id` | 첫 실행 시 생성되고 `~/.claude.json`에 유지되는 무작위 익명 식별자입니다. 개인 정보를 포함하지 않으며 Claude 계정에서 파생되지 않습니다. 파일을 삭제하면 다음 실행 시 새로운 관련 없는 값이 생성됩니다. | 항상 포함됨 |
535| `user.email` | 사용자 이메일 주소(로그인 시 또는 [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 세션 자체의 자격 증명에서) | 사용 가능할 때 항상 포함됨 |538| `user.email` | 사용자 이메일 주소(로그인 시 또는 [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 세션 자체의 자격 증명에서) | 사용 가능할 때 항상 포함됨 |
536| `terminal.type` | 터미널 유형(예: `iTerm.app`, `vscode`, `cursor`, 또는 `tmux`) | 감지될 때 항상 포함됨 |539| `terminal.type` | 터미널 유형(예: `iTerm.app`, `vscode`, `cursor`, 또는 `tmux`) | 감지될 때 항상 포함됨 |
537| `OTEL_RESOURCE_ATTRIBUTES`의 키 | 설정한 사용자 정의 속성(예: `department` 또는 `team.id`). [다중 팀 조직 지원](#multi-team-organization-support) 참조 | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (기본값: true) |540| `OTEL_RESOURCE_ATTRIBUTES`의 키 | 설정한 사용자 정의 속성(예: `department` 또는 `team.id`). [다중 팀 조직 지원](#multi-team-organization-support) 참조 | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (기본값: true) |
538| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | 세션 저장소의 ID(저장소의 `origin` 원격에서 파생됨). [저장소 속성](#repository-attributes) 참조 | `OTEL_METRICS_INCLUDE_REPOSITORY` (기본값: false). Claude Code v2.1.269 이상 필요 |541| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | 세션 저장소의 ID(해당 `origin` 원격에서 파생됨). [저장소 속성](#repository-attributes) 참조 | `OTEL_METRICS_INCLUDE_REPOSITORY` (기본값: false). Claude Code v2.1.269 이상 필요 |
539 542
540Claude Code가 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)에 로그인되어 있으면 CLI는 게이트웨이 세션의 인증된 ID로 내보내기를 스탬프합니다: `user.id`는 익명 설치 식별자가 아닌 IdP 주체이고, `user.email`은 로그인한 이메일이며, `user.groups`는 IdP 그룹 멤버십을 쉼표로 구분된 문자열로 전달합니다. 각 내보내기는 또한 `identity.source: gateway-oidc`를 전달합니다. 게이트웨이 ID는 마지막에 적용되므로 `OTEL_RESOURCE_ATTRIBUTES`를 통해 설정된 `user.*` 및 `identity.*` 키는 게이트웨이 세션에서 무시됩니다.543Claude Code가 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)에 로그인되어 있으면 CLI는 게이트웨이 세션의 인증된 ID로 내보내기를 스탬프합니다: `user.id`는 익명 설치 식별자가 아닌 IdP 주체이고, `user.email`은 로그인한 이메일이며, `user.groups`는 쉼표로 구분된 문자열로 IdP 그룹 멤버십을 전달합니다. 각 내보내기는 또한 `identity.source: gateway-oidc`를 전달합니다. 게이트웨이 ID가 마지막에 적용되므로 `OTEL_RESOURCE_ATTRIBUTES`를 통해 설정된 `user.*` 및 `identity.*` 키는 게이트웨이 세션에서 무시됩니다.
541 544
542이벤트는 추가로 다음 속성을 포함합니다. 이들은 무한 카디널리티를 야기할 수 있으므로 메트릭에는 절대 첨부되지 않습니다:545이벤트는 추가로 다음 속성을 포함합니다. 이들은 무한한 카디널리티를 야기할 수 있으므로 메트릭에는 절대 첨부되지 않습니다:
543 546
544* `prompt.id`: 사용자 프롬프트를 다음 프롬프트까지의 모든 후속 이벤트와 연관시키는 UUID입니다. [이벤트 상관 속성](#event-correlation-attributes) 참조.547* `prompt.id`: 사용자 프롬프트를 다음 프롬프트까지의 모든 후속 이벤트와 연관시키는 UUID입니다. [이벤트 상관 속성](#event-correlation-attributes) 참조.
545* `workspace.host_paths`: 데스크톱 앱에서 선택한 호스트 작업 공간 디렉토리(문자열 배열)548* `workspace.host_paths`: 데스크톱 앱에서 선택한 호스트 작업 공간 디렉토리(문자열 배열)
546* `workflow.run_id`: [Workflow](/docs/ko/workflows) 도구 실행에 속하는 에이전트가 내보낸 API 및 도구 이벤트의 실행 식별자(접두사 `wf_`). 하나의 `workflow.run_id`로 이벤트를 필터링하면 해당 실행의 API 요청 및 도구 결과를 재구성합니다. 식별자는 워크플로우 스크립트가 생성하는 에이전트와 그 에이전트가 차례로 생성하는 모든 에이전트(예: 스킬 호출)를 포함합니다. Workflow 도구 결과에서 보고된 실행 식별자와 일치합니다. 다른 모든 이벤트에는 없습니다. Claude Code v2.1.202 이상 필요549* `workflow.run_id`: [Workflow](/docs/ko/workflows) 도구 실행에 속하는 에이전트가 내보낸 API 및 도구 이벤트의 실행 식별자(접두사 `wf_`). 하나의 `workflow.run_id`로 이벤트를 필터링하면 해당 실행의 API 요청 및 도구 결과를 재구성합니다. 식별자는 워크플로우 스크립트가 생성하는 에이전트와 그 에이전트가 차례로 생성하는 모든 에이전트(예: 스킬 호출)를 포함합니다. Workflow 도구 결과에서 보고된 실행 식별자와 일치합니다. 다른 모든 이벤트에는 없습니다. Claude Code v2.1.202 이상 필요
547* `workflow.name`: 워크플로우의 이름(스크립트의 `meta.name`), `workflow.run_id`와 함께 내보냅니다. 기본 제공 워크플로우 이름은 실행이 수정되지 않은 기본 제공 스크립트를 실행할 때 그대로 나타납니다. 기본 제공 스크립트의 편집된 복사본을 포함한 사용자 작성 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `custom`으로 대체됩니다. Claude Code v2.1.202 이상 필요550* `workflow.name`: 워크플로우의 이름(스크립트의 `meta.name`), `workflow.run_id`와 함께 내보냅니다. 기본 제공 워크플로우 이름은 실행이 수정되지 않은 기본 제공 스크립트를 실행할 때 그대로 나타납니다. 기본 제공 스크립트의 편집된 복사본을 포함한 사용자 작성 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `custom`으로 대체됩니다. Claude Code v2.1.202 이상 필요
548 551
549<h4 id="repository-attributes">552<h4 id="repository-attributes">
550 저장소 속성553 저장소 속성
551</h4>554</h4>
552 555
553`OTEL_METRICS_INCLUDE_REPOSITORY=true`를 설정하여 메트릭과 이벤트를 세션의 저장소 ID로 태그하면, 공유 수집기가 저장소별로 사용량을 속성화할 수 있습니다. Claude Code v2.1.269 이상 필요합니다.556`OTEL_METRICS_INCLUDE_REPOSITORY=true`를 설정하여 메트릭 및 이벤트에 세션의 저장소 ID를 태그하면 공유 수집기가 저장소별 사용량을 속성화할 수 있습니다. Claude Code v2.1.269 이상 필요합니다.
554 557
555Claude Code는 저장소의 `origin` 원격에서 이러한 속성을 세션당 한 번 파생합니다. 하나의 저장소의 HTTPS 및 SSH 원격은 동일한 값을 생성합니다:558Claude Code는 저장소의 `origin` 원격에서 이러한 속성을 세션당 한 번 파생합니다. 한 저장소의 HTTPS 및 SSH 원격은 동일한 값을 생성합니다:
556 559
557| 속성 | 값 |560| 속성 | 값 |
558| ------------------------- | ---------------------------------------------------------------------------------------------------------- |561| ------------------------- | -------------------------------------------------------------------------------------------------- |
559| `vcs.repository.url.full` | 저장소의 브라우저 URL(.git 없음)(예: `https://github.com/example-org/example-repo`) |562| `vcs.repository.url.full` | 저장소의 브라우저 URL(`.git` 제외)(예: `https://github.com/example-org/example-repo`) |
560| `vcs.owner.name` | 소유자 또는 그룹 경로(예: `example-org`). 원격 경로가 단일 세그먼트를 가질 때는 생략됨 |563| `vcs.owner.name` | 소유자 또는 그룹 경로(예: `example-org`); 원격 경로에 단일 세그먼트가 있을 때 생략됨 |
561| `vcs.repository.name` | 기본 저장소 이름(예: `example-repo`) |564| `vcs.repository.name` | 기본 저장소 이름(예: `example-repo`) |
562| `vcs.provider.name` | Claude Code가 원격의 호스트 또는 URL 형태를 이러한 공급자 중 하나로 인식할 때 `github`, `gitlab`, `bitbucket`, 또는 `gitea`. 그 외에는 생략됨 |565| `vcs.provider.name` | Claude Code가 원격의 호스트 또는 URL 형태를 `github`, `gitlab`, `bitbucket`, 또는 `gitea` 중 하나로 인식할 때; 그 외에는 생략됨 |
563 566
564값은 소문자로 변환되며, 원격 URL의 자격 증명, 쿼리 문자열, 및 조각은 절대 나타나지 않습니다. 세션에 `origin` 원격이 없을 때, 원격이 URL 형태가 아닐 때, 또는 유일한 포함 저장소가 홈 디렉토리일 때 속성은 생략됩니다.567값은 소문자로 변환되며, 원격 URL의 자격 증명, 쿼리 문자열 및 조각은 절대 나타나지 않습니다. 세션에 `origin` 원격이 없을 때, 원격이 URL 형태가 아닐 때, 또는 유일한 포함 저장소가 홈 디렉토리일 때 속성이 생략됩니다.
565 568
566[`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support)에서 선언한 `vcs.*` 키는 해당 키의 파생 값을 대체합니다. `vcs.repository.url.full`을 선언하면 Claude Code는 절대 원격을 읽지 않으며 선언한 키만 보고합니다.569[`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support)에서 선언한 `vcs.*` 키는 해당 키의 파생된 값을 대체합니다. `vcs.repository.url.full`을 선언하면 Claude Code는 절대 원격을 읽지 않고 선언한 키만 보고합니다.
567 570
568속성은 자신의 내보내기로만 흐릅니다. Anthropic의 원격 측정은 모든 `vcs.*` 키를 삭제합니다.571속성은 자신의 내보내기로만 흐릅니다; Anthropic의 원격 측정은 모든 `vcs.*` 키를 삭제합니다.
569 572
570<h3 id="metrics">573<h3 id="metrics">
571 메트릭574 메트릭
572</h3>575</h3>
573 576
574Claude Code는 다음 메트릭을 내보냅니다. Unit 열은 각 메트릭에 첨부된 OpenTelemetry 단위 문자열을 보여줍니다. 카운트 메트릭은 없습니다.577Claude Code는 다음 메트릭을 내보냅니다. Unit 열은 각 메트릭에 첨부된 OpenTelemetry 단위 문자열을 보여줍니다; 카운트 메트릭은 없습니다.
575 578
576| 메트릭 이름 | 설명 | 단위 |579| 메트릭 이름 | 설명 | 단위 |
577| ------------------------------------- | ------------------ | ------ |580| ------------------------------------- | ------------------ | ------ |
584| `claude_code.code_edit_tool.decision` | 코드 편집 도구 권한 결정 수 | 없음 |587| `claude_code.code_edit_tool.decision` | 코드 편집 도구 권한 결정 수 | 없음 |
585| `claude_code.active_time.total` | 총 활성 시간 | s |588| `claude_code.active_time.total` | 총 활성 시간 | s |
586 589
587`prometheus`가 `OTEL_METRICS_EXPORTER`에 나열된 유일한 내보내기일 때, Claude Code는 스크래이프가 유효한 Prometheus 텍스트 형식으로 유지되도록 내보낸 메트릭에서 `USD`, `tokens`, 및 `s` 단위를 생략합니다. 메트릭 이름은 변경되지 않으며, `otlp,prometheus`와 같이 내보내기를 결합하는 구성은 단위를 유지합니다. v2.1.216 이전에는 Prometheus 스크래이프에 일부 스크래이퍼가 거부한 OpenMetrics 전용 `# UNIT` 라인이 포함되었습니다.590`prometheus`가 `OTEL_METRICS_EXPORTER`에 나열된 유일한 내보내기일 때 Claude Code는 스크래이프가 유효한 Prometheus 텍스트 형식으로 유지되도록 내보낸 메트릭에서 `USD`, `tokens`, 및 `s` 단위를 생략합니다. 메트릭 이름은 변경되지 않으며, `otlp,prometheus`와 같이 내보내기를 결합하는 구성은 단위를 유지합니다. v2.1.216 이전에는 Prometheus 스크래이프에 일부 스크래퍼가 거부한 OpenMetrics 전용 `# UNIT` 라인이 포함되었습니다.
588 591
589<h3 id="metric-details">592<h3 id="metric-details">
590 메트릭 세부 정보593 메트릭 세부 정보
601**속성**:604**속성**:
602 605
603* 모든 [표준 속성](#standard-attributes)606* 모든 [표준 속성](#standard-attributes)
604* `start_type`: 세션이 시작된 방식. `"fresh"`, `"resume"`, `"continue"`, 또는 `"agents_view"` 중 하나입니다. `"agents_view"` 값은 `claude agents` 대시보드 프로세스(대화형 세션이 아닌 사용자가 시작한 로컬 UI)를 식별합니다. 이 값으로 필터링하여 대시보드에서 UI 프로세스 시작을 대화형 세션과 분리합니다.607* `start_type`: 세션이 시작된 방식. `"fresh"`, `"resume"`, `"continue"`, 또는 `"agents_view"` 중 하나입니다. `"agents_view"` 값은 `claude agents` 대시보드 프로세스(대화형 세션이 아닌 사용자 시작 로컬 UI)를 식별합니다. 대시보드에서 UI 프로세스 시작을 대화형 세션과 분리하려면 이 값을 필터링합니다.
605 608
606<h4 id="lines-of-code-counter">609<h4 id="lines-of-code-counter">
607 코드 라인 카운터610 코드 라인 카운터
647* `model`: 모델 식별자(예: "claude-sonnet-5")650* `model`: 모델 식별자(예: "claude-sonnet-5")
648* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"`, 또는 `"auxiliary"` 중 하나입니다.651* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"`, 또는 `"auxiliary"` 중 하나입니다.
649* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없습니다.652* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없습니다.
650* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"`. 모델이 노력을 지원하지 않을 때는 없습니다.653* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"`. Claude Code가 노력 수준을 보내지 않을 때(예: 노력을 지원하지 않는 모델)는 없습니다.
651* `agent.name`: 요청을 발급한 하위 에이전트 유형. 기본 제공 에이전트 이름과 공식 마켓플레이스 플러그인의 에이전트는 그대로 나타납니다. 다른 사용자 정의 에이전트 이름은 `"custom"`으로 대체됩니다. 요청이 명명된 하위 에이전트 유형에 의해 발급되지 않았을 때는 없습니다.654* `agent.name`: 요청을 발급한 하위 에이전트 유형. 기본 제공 에이전트 이름과 공식 마켓플레이스 플러그인의 에이전트는 그대로 나타납니다. 다른 사용자 정의 에이전트 이름은 `"custom"`으로 대체됩니다. 요청이 명명된 하위 에이전트 유형에 의해 발급되지 않았을 때는 없습니다.
652* `skill.name`: 요청에 대해 활성화된 스킬(Skill 도구, `/` 명령, 또는 생성된 하위 에이전트에 의해 상속됨으로 설정됨). 기본 제공, 번들, 사용자 정의, 및 공식 마켓플레이스 플러그인 스킬 이름은 그대로 나타납니다. 타사 플러그인 스킬 이름은 `"third-party"`로 대체됩니다. 활성 스킬이 없을 때는 없습니다.655* `skill.name`: 요청에 대해 활성화된 스킬(Skill 도구, `/` 명령, 또는 생성된 하위 에이전트에 의해 상속됨으로 설정됨). 기본 제공, 번들, 사용자 정의, 및 공식 마켓플레이스 플러그인 스킬 이름은 그대로 나타납니다. 타사 플러그인 스킬 이름은 `"third-party"`로 대체됩니다. 활성 스킬이 없을 때는 없습니다.
653* `plugin.name`: 활성 스킬 또는 하위 에이전트가 플러그인에 의해 제공될 때의 소유 플러그인. 공식 마켓플레이스 플러그인 이름은 그대로 나타납니다. 타사 플러그인 이름은 `"third-party"`로 대체됩니다. 스킬과 하위 에이전트 모두 소유 플러그인을 가지지 않을 때는 없습니다.656* `plugin.name`: 활성 스킬 또는 하위 에이전트를 제공하는 플러그인의 소유자. 공식 마켓플레이스 플러그인 이름은 그대로 나타납니다. 타사 플러그인 이름은 `"third-party"`로 대체됩니다. 스킬과 하위 에이전트 모두 소유 플러그인이 없을 때는 없습니다.
654* `marketplace.name`: 소유 플러그인이 설치된 마켓플레이스. 공식 마켓플레이스 플러그인에 대해서만 내보냅니다. 그 외에는 없습니다.657* `marketplace.name`: 소유 플러그인이 설치된 마켓플레이스. 공식 마켓플레이스 플러그인에만 내보냅니다. 그 외에는 없습니다.
655* `mcp_server.name`: 이 요청이 소비한 도구 결과의 MCP 서버. 기본 제공, claude.ai 프록시, 및 공식 레지스트리 서버 이름은 그대로 나타납니다. 사용자 구성 서버 이름은 `"custom"`으로 대체됩니다. 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다. v2.1.222 이전에는 Claude Code가 MCP 도구 호출 후 모든 요청에 이 속성을 설정했으며, 도구 결과를 소비한 요청에만 설정하지 않았으므로 이를 집계하는 대시보드는 업그레이드 후 단계적 감소를 보여줍니다.658* `mcp_server.name`: 이 요청이 소비한 도구 결과의 MCP 서버. 기본 제공, claude.ai 프록시, 및 공식 레지스트리 서버 이름은 그대로 나타납니다. 사용자 구성 서버 이름은 `"custom"`으로 대체됩니다. 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다. v2.1.222 이전에는 Claude Code가 MCP 도구 호출 후 모든 요청에 이 속성을 설정했으며, 도구 결과를 소비한 요청에만 설정하지 않았으므로 이를 집계하는 대시보드는 업그레이드 후 단계 감소를 보여줍니다.
656* `mcp_tool.name`: 이 요청이 소비한 도구 결과의 MCP 도구(MCP 서버 이름과 동일한 수정 및 버전 동작 포함). 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다.659* `mcp_tool.name`: 이 요청이 소비한 도구 결과의 MCP 도구(삭제 및 버전 동작은 `mcp_server.name`과 동일). 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다.
657 660
658<h4 id="token-counter">661<h4 id="token-counter">
659 토큰 카운터662 토큰 카운터
669* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"`, 또는 `"auxiliary"` 중 하나입니다.672* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"`, 또는 `"auxiliary"` 중 하나입니다.
670* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없습니다.673* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없습니다.
671* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level). 세부 정보는 [비용 카운터](#cost-counter)를 참조하세요.674* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level). 세부 정보는 [비용 카운터](#cost-counter)를 참조하세요.
672* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 수정 동작은 [비용 카운터](#cost-counter)를 참조하세요.675* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 삭제 동작은 [비용 카운터](#cost-counter)를 참조하세요.
673 676
674<h4 id="code-edit-tool-decision-counter">677<h4 id="code-edit-tool-decision-counter">
675 코드 편집 도구 결정 카운터678 코드 편집 도구 결정 카운터
680**속성**:683**속성**:
681 684
682* 모든 [표준 속성](#standard-attributes)685* 모든 [표준 속성](#standard-attributes)
683* `tool_name`: 도구 이름(`"Edit"`, `"Write"`, `"NotebookEdit"`)686* `tool_name`: 도구 이름 (`"Edit"`, `"Write"`, `"NotebookEdit"`)
684* `decision`: 사용자 결정(`"accept"`, `"reject"`)687* `decision`: 사용자 결정 (`"accept"`, `"reject"`)
685* `source`: 결정이 어디서 나왔는지. `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, 또는 `"user_reject"` 중 하나입니다. 각 값의 의미는 [도구 결정 이벤트](#tool-decision-event)를 참조하세요.688* `source`: 결정이 나온 위치. `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, 또는 `"user_reject"` 중 하나입니다. 각 값의 의미는 [도구 결정 이벤트](#tool-decision-event)를 참조하세요.
686* `language`: 편집된 파일의 프로그래밍 언어(예: `"TypeScript"`, `"Python"`, `"JavaScript"`, 또는 `"Markdown"`). 인식되지 않은 파일 확장자의 경우 `"unknown"`을 반환합니다.689* `language`: 편집된 파일의 프로그래밍 언어(예: `"TypeScript"`, `"Python"`, `"JavaScript"`, 또는 `"Markdown"`). 인식되지 않은 파일 확장자의 경우 `"unknown"`을 반환합니다.
687 690
688<h4 id="active-time-counter">691<h4 id="active-time-counter">
709사용자가 프롬프트를 제출하면 Claude Code는 여러 API 호출을 수행하고 여러 도구를 실행할 수 있습니다. `prompt.id` 속성을 사용하면 이러한 모든 이벤트를 이를 트리거한 단일 프롬프트에 연결할 수 있습니다.712사용자가 프롬프트를 제출하면 Claude Code는 여러 API 호출을 수행하고 여러 도구를 실행할 수 있습니다. `prompt.id` 속성을 사용하면 이러한 모든 이벤트를 이를 트리거한 단일 프롬프트에 연결할 수 있습니다.
710 713
711| 속성 | 설명 |714| 속성 | 설명 |
712| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |715| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
713| `prompt.id` | 단일 사용자 프롬프트 처리 중에 생성된 모든 이벤트를 연결하는 UUID v4 식별자 |716| `prompt.id` | 단일 사용자 프롬프트 처리 중에 생성된 모든 이벤트를 연결하는 UUID v4 식별자 |
714| `event.sequence` | 이벤트 순서 지정을 위한 0 기반 카운터(Claude Code 프로세스당 계산되며 세션당이 아님) |717| `event.sequence` | 이벤트 순서 지정을 위한 0 기반 카운터(세션당이 아닌 Claude Code 프로세스당 계산됨) |
715| `message.uuid` | 세션 트랜스크립트(`~/.claude/projects/*/*.jsonl` 파일)에 저장된 메시지의 UUID입니다. `assistant_response`에 있고, 명령 디스패치를 제외한 `user_prompt`에 있습니다(명령 디스패치는 0개 이상의 메시지를 생성할 수 있음). `assistant_response`에서 이것은 응답의 최종 트랜스크립트 항목이며, 다음 턴의 `parentUuid`가 이로부터 체인됩니다. Claude Code v2.1.214 이상 필요 |718| `message.uuid` | 세션 기록에 유지되는 메시지의 UUID(\~/.claude/projects/*/*.jsonl 파일). `assistant_response`, `api_response_body`, 및 명령 디스패치를 제외한 `user_prompt`에 있습니다(0개 이상의 메시지를 생성할 수 있음). `assistant_response` 및 `api_response_body`에서 이는 응답의 최종 기록 항목이며, 다음 턴의 `parentUuid`가 이로부터 체인됩니다. Claude Code v2.1.214 이상 필요, `api_response_body`에서 v2.1.274 이상 필요 |
716| `client_request_id` | `x-client-request-id` 요청 헤더로 전송된 클라이언트 생성 UUID입니다. 자사 API 연결의 `api_request` 및 `api_error`에 있고, 타사 공급자 백엔드 및 요청이 비스트리밍 폴백을 통해 재시도되었을 때는 없습니다. 요청을 응답과 쌍으로 만들고 서버 `request_id`를 생성하지 않은 타임아웃과 같은 실패에 대해 사용 가능하게 유지합니다. `llm_request` 추적 스팬의 동일한 속성과 일치합니다. Claude Code v2.1.214 이상 필요 |719| `client_request_id` | `x-client-request-id` 요청 헤더로 전송된 클라이언트 생성 UUID. 첫 번째 당사자 API 연결에서 `api_request` 및 `api_error`에 있습니다; 타사 공급자 백엔드 및 요청이 비스트리밍 폴백을 통해 재시도되었을 때는 없습니다. 요청을 응답과 쌍으로 만들고 타임아웃과 같이 서버 `request_id`를 생성하지 않은 실패에 대해 사용 가능합니다. `llm_request` 추적 스팬의 동일한 속성과 일치합니다. Claude Code v2.1.214 이상 필요 |
717 720
718단일 프롬프트로 트리거된 모든 활동을 추적하려면 특정 `prompt.id` 값으로 이벤트를 필터링하세요. 이는 user\_prompt 이벤트, 모든 api\_request 이벤트, 및 해당 프롬프트 처리 중에 발생한 모든 tool\_result 이벤트를 반환합니다.721단일 프롬프트로 트리거된 모든 활동을 추적하려면 특정 `prompt.id` 값으로 이벤트를 필터링합니다. 이는 user\_prompt 이벤트, 모든 api\_request 이벤트, 및 해당 프롬프트 처리 중에 발생한 모든 tool\_result 이벤트를 반환합니다.
719 722
720`event.sequence`는 Claude Code 프로세스가 시작될 때마다 0에서 시작하고 해당 프로세스의 수명 동안 계속 증가합니다. `/clear`를 통해 계속 계산되며, 이는 새로운 `session.id`를 할당합니다. [세션을 포크하지 않고 재개](/docs/ko/how-claude-code-works#resume-or-fork-sessions)하면, 세션은 `session.id`를 유지하지만 세션을 재개한 프로세스에서 `event.sequence` 값을 가져오므로, 한 세션 내에서 나중의 이벤트가 이전 이벤트보다 낮은 값을 전달하거나 하나를 반복할 수 있습니다. 세션의 이벤트를 순서대로 정렬하려면 `event.timestamp`로 정렬하고 동일한 타임스탬프를 공유하는 이벤트를 순서대로 정렬하려면 `event.sequence`를 사용하세요.723`event.sequence`는 Claude Code 프로세스가 시작될 때마다 0에서 시작하고 해당 프로세스의 수명 동안 증가합니다. `/clear`를 통해 계속 계산되며, 이는 새로운 `session.id`를 할당합니다. [세션을 포크하지 않고 재개](/docs/ko/how-claude-code-works#resume-or-fork-sessions)하면 세션은 `session.id`를 유지하지만 이를 재개한 프로세스에서 `event.sequence` 값을 가져오므로 한 세션 내에서 나중 이벤트가 이전 이벤트보다 낮은 값을 전달하거나 반복할 수 있습니다. 세션의 이벤트를 순서대로 정렬하려면 `event.timestamp`로 정렬하고 `event.sequence`를 사용하여 타임스탬프를 공유하는 이벤트를 순서대로 정렬합니다.
721 724
722메시지 수준 재구성의 경우, 각 이벤트 클래스는 세션 트랜스크립트의 필드와 일치하는 키를 전달합니다. 트랜스크립트 항목 형식은 [Claude Code 내부](/docs/ko/sessions#where-transcripts-are-stored)이며 버전 간에 변경되므로, 이러한 필드에 조인하는 파이프라인은 모든 릴리스에서 중단될 수 있습니다. 조인을 안정적인 계약이 아닌 버전별 조인으로 취급하세요:725메시지 수준 재구성의 경우 각 이벤트 클래스는 세션 기록의 필드와 일치하는 키를 전달합니다. 기록 항목 형식은 [Claude Code 내부](/docs/ko/sessions#where-transcripts-are-stored)이며 버전 간에 변경되므로 이러한 필드에 조인하는 파이프라인은 모든 릴리스에서 중단될 수 있습니다; 조인을 안정적인 계약이 아닌 버전별 조인으로 취급합니다:
723 726
724* `user_prompt` 및 `assistant_response`의 `message.uuid`727* `user_prompt`, `assistant_response`, 및 `api_response_body`의 `message.uuid`
725* API 이벤트의 `request_id`(트랜스크립트의 어시스턴트 항목에 `requestId`로 저장됨)728* API 이벤트의 `request_id`(기록의 어시스턴트 항목에 `requestId`로 유지됨)
726* `tool_result` 및 `tool_decision` 이벤트의 `tool_use_id`729* `tool_result` 및 `tool_decision` 이벤트의 `tool_use_id`
727 730
728<h4 id="user-prompt-event">731<h4 id="user-prompt-event">
738* 모든 [표준 속성](#standard-attributes)741* 모든 [표준 속성](#standard-attributes)
739* `event.name`: `"user_prompt"`742* `event.name`: `"user_prompt"`
740* `event.timestamp`: ISO 8601 타임스탬프743* `event.timestamp`: ISO 8601 타임스탬프
741* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)744* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
742* `prompt_length`: 프롬프트의 길이745* `prompt_length`: 프롬프트의 길이
743* `prompt`: 프롬프트 내용. 기본적으로 수정됨. `OTEL_LOG_USER_PROMPTS=1`을 설정하여 포함시킵니다.746* `prompt`: 프롬프트 내용. 기본적으로 삭제됩니다. `OTEL_LOG_USER_PROMPTS=1`을 설정하여 포함합니다.
744* `message.uuid`: 저장된 트랜스크립트 항목과 일치하는 결과 사용자 메시지의 UUID입니다. 명령 디스패치에는 없습니다(0개 이상의 메시지를 생성할 수 있음). Claude Code v2.1.214 이상 필요747* `message.uuid`: 결과 사용자 메시지의 UUID(유지된 기록 항목과 일치). 명령 디스패치에는 없습니다(0개 이상의 메시지를 생성할 수 있음). Claude Code v2.1.214 이상 필요
745* `command_name`: 프롬프트가 명령을 호출할 때의 명령 이름. `compact` 또는 `debug`와 같은 기본 제공 및 번들 명령 이름은 그대로 내보냅니다. `reset`과 같은 별칭은 정규 이름이 아닌 입력한 대로 내보냅니다. 사용자 정의, 플러그인, 및 MCP 명령 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `custom` 또는 `mcp`로 축소됩니다.748* `command_name`: 프롬프트가 명령을 호출할 때의 명령 이름. `compact` 또는 `debug`와 같은 기본 제공 및 번들 명령 이름은 그대로 내보냅니다; `reset`과 같은 별칭은 정규 이름이 아닌 입력한 대로 내보냅니다. 사용자 정의, 플러그인, 및 MCP 명령 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `custom` 또는 `mcp`로 축소됩니다.
746* `command_source`: 명령이 있을 때의 명령 출처: `builtin`, `custom`, 또는 `mcp`. 플러그인 제공 명령은 `custom`으로 보고합니다.749* `command_source`: 명령이 있을 때의 명령 출처: `builtin`, `custom`, 또는 `mcp`. 플러그인 제공 명령은 `custom`으로 보고합니다.
747 750
748<h4 id="assistant-response-event">751<h4 id="assistant-response-event">
749 어시스턴트 응답 이벤트752 어시스턴트 응답 이벤트
750</h4>753</h4>
751 754
752텍스트 콘텐츠를 모델에서 반환하는 각 API 요청 후 기록됩니다. 응답의 텍스트 블록만 포함됩니다. 사고 블록 및 도구 사용 블록은 제외됩니다. Claude Code v2.1.193 이상 필요.755모델에서 텍스트 콘텐츠를 반환하는 각 API 요청 후 기록됩니다. 응답의 텍스트 블록만 포함됩니다; 생각 블록 및 도구 사용 블록은 제외됩니다. Claude Code v2.1.193 이상 필요.
753 756
754**이벤트 이름**: `claude_code.assistant_response`757**이벤트 이름**: `claude_code.assistant_response`
755 758
758* 모든 [표준 속성](#standard-attributes)761* 모든 [표준 속성](#standard-attributes)
759* `event.name`: `"assistant_response"`762* `event.name`: `"assistant_response"`
760* `event.timestamp`: ISO 8601 타임스탬프763* `event.timestamp`: ISO 8601 타임스탬프
761* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)764* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
762* `response_length`: 응답 텍스트의 길이(문자)765* `response_length`: 응답 텍스트의 문자 길이
763* `response`: 응답 텍스트(콘텐츠 제한(기본값 60KB)에서 잘림). 기본적으로 `<REDACTED>`로 수정됨. `OTEL_LOG_ASSISTANT_RESPONSES=1`을 설정하여 포함시킵니다. `OTEL_LOG_ASSISTANT_RESPONSES`가 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`가 대신 제어하므로, 프롬프트 로깅이 켜져 있는 동안 응답을 수정된 상태로 유지하려면 `OTEL_LOG_ASSISTANT_RESPONSES=0`을 설정하세요.766* `response`: 응답 텍스트(콘텐츠 제한(기본값 60KB)에서 잘림). 기본적으로 `<REDACTED>`로 삭제됩니다. `OTEL_LOG_ASSISTANT_RESPONSES=1`을 설정하여 포함합니다. `OTEL_LOG_ASSISTANT_RESPONSES`가 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`가 대신 제어하므로 프롬프트 로깅이 켜져 있는 동안 응답을 삭제된 상태로 유지하려면 `OTEL_LOG_ASSISTANT_RESPONSES=0`을 설정합니다.
764* `model`: 모델 식별자(예: "claude-sonnet-5")767* `model`: 모델 식별자(예: "claude-sonnet-5")
765* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID. API가 반환할 때만 있습니다.768* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID. API가 반환할 때만 있습니다.
766* `message.uuid`: 응답의 최종 트랜스크립트 항목의 UUID입니다. API 응답은 콘텐츠 블록당 하나의 트랜스크립트 항목으로 저장됩니다. 이것은 마지막 항목이며, 다음 턴의 `parentUuid`가 이로부터 체인됩니다. Claude Code v2.1.214 이상 필요769* `message.uuid`: 응답의 최종 기록 항목의 UUID. API 응답은 콘텐츠 블록당 하나의 기록 항목으로 유지됩니다; 이는 마지막 항목이며, 다음 턴의 `parentUuid`가 이로부터 체인됩니다. Claude Code v2.1.214 이상 필요
767* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름)770* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름)
768 771
769<h4 id="tool-result-event">772<h4 id="tool-result-event">
770 도구 결과 이벤트773 도구 결과 이벤트
771</h4>774</h4>
772 775
773도구 실행이 완료될 때 기록됩니다. 도구 호출이 거부된 경우 내보내지 않습니다. 거부에 대해서는 [도구 결정 이벤트](#tool-decision-event)를 참조하세요.776도구가 실행을 완료할 때 기록됩니다. 도구 호출이 거부된 경우 내보내지 않습니다; 거부에 대해서는 [도구 결정 이벤트](#tool-decision-event)를 참조하세요.
774 777
775**이벤트 이름**: `claude_code.tool_result`778**이벤트 이름**: `claude_code.tool_result`
776 779
779* 모든 [표준 속성](#standard-attributes)782* 모든 [표준 속성](#standard-attributes)
780* `event.name`: `"tool_result"`783* `event.name`: `"tool_result"`
781* `event.timestamp`: ISO 8601 타임스탬프784* `event.timestamp`: ISO 8601 타임스탬프
782* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)785* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
783* `tool_name`: 도구의 이름786* `tool_name`: 도구의 이름
784* `tool_use_id`: 이 도구 호출의 고유 식별자. 훅에 전달된 `tool_use_id`와 일치하여 OTel 이벤트와 훅 캡처 데이터 간의 상관 관계를 허용합니다.787* `tool_use_id`: 이 도구 호출의 고유 식별자. 훅에 전달된 `tool_use_id`와 일치하여 OTel 이벤트와 훅 캡처 데이터 간의 상관 관계를 허용합니다.
785* `success`: `"true"` 또는 `"false"`788* `success`: `"true"` 또는 `"false"`
786* `duration_ms`: 실행 시간(밀리초)789* `duration_ms`: 밀리초 단위의 실행 시간
787* `error_type`: 도구가 실패했을 때의 오류 범주 문자열(예: `"Error:ENOENT"` 또는 `"ShellError"`)790* `error_type`: 도구가 실패했을 때의 오류 범주 문자열(예: `"Error:ENOENT"` 또는 `"ShellError"`)
788* `error` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 도구가 실패했을 때의 전체 오류 메시지791* `error` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 도구가 실패했을 때의 전체 오류 메시지
789* `decision_type`: 항상 `"accept"`(이 이벤트는 도구 실행 후에만 내보내짐). 거부된 호출은 도구 결과를 생성하지 않습니다.792* `decision_type`: 항상 `"accept"`(이 이벤트는 도구 실행 후에만 내보내짐). 거부된 호출은 도구 결과를 생성하지 않습니다.
790* `decision_source`: 권한 결정이 어디서 나왔는지. `"config"`, `"hook"`, `"user_permanent"`, 또는 `"user_temporary"` 중 하나입니다. 각 값의 의미는 [도구 결정 이벤트](#tool-decision-event)를 참조하세요. 거부 전용 소스 `"user_abort"` 및 `"user_reject"`는 이 이벤트에 나타나지 않습니다.793* `decision_source`: 권한 결정이 나온 위치. `"config"`, `"hook"`, `"user_permanent"`, 또는 `"user_temporary"` 중 하나입니다. 각 값의 의미는 [도구 결정 이벤트](#tool-decision-event)를 참조하세요. 거부 전용 소스 `"user_abort"` 및 `"user_reject"`는 이 이벤트에 나타나지 않습니다.
791* `tool_input_size_bytes`: JSON 직렬화된 도구 입력의 크기(바이트)794* `tool_input_size_bytes`: JSON 직렬화된 도구 입력의 바이트 크기
792* `tool_result_size_bytes`: 도구 결과의 크기(바이트)795* `tool_result_size_bytes`: 도구 결과의 바이트 크기
793* `mcp_server_scope`: MCP 서버 범위 식별자(MCP 도구의 경우)796* `mcp_server_scope`: MCP 서버 범위 식별자(MCP 도구의 경우)
794* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (`OTEL_LOG_TOOL_DETAILS=1`일 때): Bash 또는 PowerShell 도구에 의해 실행된 성공적인 `git commit`의 커밋 ID. `vcs.ref.head.revision`은 커밋 SHA이고, `vcs.ref.head.name`은 커밋된 브랜치이며, `vcs.ref.head.type`은 `branch`입니다. 커밋이 분리된 HEAD에서 이루어졌을 때 이름과 유형은 생략됩니다. Claude Code v2.1.269 이상 필요797*
795* `tool_parameters` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 도구별 매개변수를 포함하는 JSON 문자열. Claude Desktop의 기본 제공 서버의 경우, Claude Desktop이 소유한 세션에서 `mcp_server_name`/`mcp_tool_name` 쌍은 플래그 없이도 포함됩니다. 이는 [도구 결정 이벤트](#tool-decision-event)와 동일한 호스트 작성 예외입니다. Claude Code v2.1.214 이상 필요. 매개변수는 도구에 따라 다릅니다:798
796 * Bash 도구의 경우: `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`, 및 `git_commit_id`와 `git_branch`(git commit 명령이 성공할 때)를 포함합니다. `git_commit_id`는 커밋이 세션의 작업 디렉토리의 HEAD일 때 전체 커밋 SHA이고, 그 외에는 git의 축약된 SHA입니다. `git_branch`는 커밋된 브랜치이며, 분리된 HEAD에서는 생략됩니다.799`vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (`OTEL_LOG_TOOL_DETAILS=1`일 때): Bash 또는 PowerShell 도구에서 실행한 성공적인 `git commit`의 커밋 ID. `vcs.ref.head.revision`은 커밋 SHA이고, `vcs.ref.head.name`은 커밋된 브랜치이며, `vcs.ref.head.type`은 `branch`입니다. 커밋이 분리된 HEAD에서 이루어진 경우 이름과 유형은 생략됩니다. Claude Code v2.1.269 이상 필요
800
801* `tool_parameters` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 도구별 매개변수를 포함하는 JSON 문자열. Claude Desktop의 기본 제공 서버의 경우 Claude Desktop이 소유한 세션에서 플래그가 꺼져 있어도 `mcp_server_name`/`mcp_tool_name` 쌍이 포함됩니다([도구 결정 이벤트](#tool-decision-event)와 동일한 호스트 작성 예외). Claude Code v2.1.214 이상 필요. 매개변수는 도구에 따라 다릅니다:
802 * Bash 도구의 경우: `bash_command`, `full_command`, `timeout`, `description`, 및 `dangerouslyDisableSandbox`를 포함하며, `git commit` 명령이 성공할 때 `git_commit_id` 및 `git_branch`를 포함합니다. `git_commit_id`는 커밋이 세션의 작업 디렉토리의 HEAD일 때 전체 커밋 SHA이고, 그 외에는 git의 축약된 SHA입니다. `git_branch`는 커밋된 브랜치이며, 분리된 HEAD에서는 생략됩니다.
797 * 데스크톱 앱의 작업 공간 Bash 도구(또한 `tool_name`을 `Bash`로 보고함): `bash_command`, `full_command`, 및 `timeout`만 포함합니다.803 * 데스크톱 앱의 작업 공간 Bash 도구(또한 `tool_name`을 `Bash`로 보고함): `bash_command`, `full_command`, 및 `timeout`만 포함합니다.
798 * MCP 도구의 경우: `mcp_server_name`, `mcp_tool_name`을 포함합니다.804 * MCP 도구의 경우: `mcp_server_name`, `mcp_tool_name`을 포함합니다.
799 * Skill 도구의 경우: `skill_name`을 포함합니다.805 * Skill 도구의 경우: `skill_name`을 포함합니다.
813* 모든 [표준 속성](#standard-attributes)819* 모든 [표준 속성](#standard-attributes)
814* `event.name`: `"api_request"`820* `event.name`: `"api_request"`
815* `event.timestamp`: ISO 8601 타임스탬프821* `event.timestamp`: ISO 8601 타임스탬프
816* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)822* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
817* `model`: 사용된 모델(예: "claude-sonnet-5")823* `model`: 사용된 모델(예: "claude-sonnet-5")
818* `cost_usd`: USD 단위의 예상 비용824* `cost_usd`: USD 단위의 예상 비용
819* `cost_usd_micros`: 미국 달러의 백만분의 일 단위의 예상 비용(정수로 내보냄)825* `cost_usd_micros`: 미국 달러의 백만분의 일 단위의 예상 비용(정수로 내보냄)
820* `duration_ms`: 요청 지속 시간(밀리초)826* `duration_ms`: 밀리초 단위의 요청 기간
821* `input_tokens`: 입력 토큰 수827* `input_tokens`: 입력 토큰 수
822* `output_tokens`: 출력 토큰 수828* `output_tokens`: 출력 토큰 수
823* `cache_read_tokens`: 캐시에서 읽은 토큰 수829* `cache_read_tokens`: 캐시에서 읽은 토큰 수
824* `cache_creation_tokens`: 캐시 생성에 사용된 토큰 수830* `cache_creation_tokens`: 캐시 생성에 사용된 토큰 수
825* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.831* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.
826* `client_request_id`: `x-client-request-id` 요청 헤더로 전송된 클라이언트 생성 UUID. 있을 때에 대해서는 [이벤트 상관 속성](#event-correlation-attributes) 표를 참조하세요. Claude Code v2.1.214 이상 필요832* `client_request_id`: `x-client-request-id` 요청 헤더로 전송된 클라이언트 생성 UUID; 있을 때에 대해서는 [이벤트 상관 속성](#event-correlation-attributes) 표를 참조하세요. Claude Code v2.1.214 이상 필요
827* `speed`: `"fast"` 또는 `"normal"`(빠른 모드가 활성화되었는지 여부를 나타냄)833* `speed`: 빠른 모드가 활성화되었는지 여부를 나타내는 `"fast"` 또는 `"normal"`
828* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름)834* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름)
829* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"`. 모델이 노력을 지원하지 않을 때는 없습니다.835* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"`. Claude Code가 노력 수준을 보내지 않을 때(예: 노력을 지원하지 않는 모델)는 없습니다.
830* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 수정 동작은 [비용 카운터](#cost-counter)를 참조하세요.836* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 삭제 동작은 [비용 카운터](#cost-counter)를 참조하세요.
831 837
832<h4 id="api-error-event">838<h4 id="api-error-event">
833 API 오류 이벤트839 API 오류 이벤트
842* 모든 [표준 속성](#standard-attributes)848* 모든 [표준 속성](#standard-attributes)
843* `event.name`: `"api_error"`849* `event.name`: `"api_error"`
844* `event.timestamp`: ISO 8601 타임스탬프850* `event.timestamp`: ISO 8601 타임스탬프
845* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)851* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
846* `model`: 사용된 모델(예: "claude-sonnet-5")852* `model`: 사용된 모델(예: "claude-sonnet-5")
847* `error`: 오류 메시지853* `error`: 오류 메시지
848* `status_code`: HTTP 상태 코드(숫자). 연결 실패와 같은 비HTTP 오류의 경우 없습니다.854* `status_code`: HTTP 상태 코드(숫자). 연결 실패와 같은 비 HTTP 오류의 경우 없습니다.
849* `duration_ms`: 요청 지속 시간(밀리초)855* `duration_ms`: 밀리초 단위의 요청 기간
850* `attempt`: 초기 요청을 포함한 총 시도 횟수(`1`은 재시도가 발생하지 않았음을 의미)856* `attempt`: 초기 요청을 포함한 총 시도 횟수(`1`은 재시도가 발생하지 않았음을 의미)
851* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.857* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.
852* `client_request_id`: `x-client-request-id` 요청 헤더로 전송된 클라이언트 생성 UUID. 타임아웃 또는 연결 오류와 같은 실패가 서버 `request_id`를 생성하지 않은 경우에도 사용 가능합니다. 있을 때에 대해서는 [이벤트 상관 속성](#event-correlation-attributes) 표를 참조하세요. Claude Code v2.1.214 이상 필요858* `client_request_id`: `x-client-request-id` 요청 헤더로 전송된 클라이언트 생성 UUID. 타임아웃 또는 연결 오류와 같은 실패가 서버 `request_id`를 생성하지 않았을 때도 사용 가능합니다; 있을 때에 대해서는 [이벤트 상관 속성](#event-correlation-attributes) 표를 참조하세요. Claude Code v2.1.214 이상 필요
853* `speed`: `"fast"` 또는 `"normal"`(빠른 모드가 활성화되었는지 여부를 나타냄)859* `speed`: 빠른 모드가 활성화되었는지 여부를 나타내는 `"fast"` 또는 `"normal"`
854* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름)860* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름)
855* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level). 모델이 노력을 지원하지 않을 때는 없습니다.861* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level). Claude Code가 노력 수준을 보내지 않을 때(예: 노력을 지원하지 않는 모델)는 없습니다.
856* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 수정 동작은 [비용 카운터](#cost-counter)를 참조하세요.862* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 삭제 동작은 [비용 카운터](#cost-counter)를 참조하세요.
857 863
858<h4 id="api-refusal-event">864<h4 id="api-refusal-event">
859 API 거부 이벤트865 API 거부 이벤트
868* 모든 [표준 속성](#standard-attributes)874* 모든 [표준 속성](#standard-attributes)
869* `event.name`: `"api_refusal"`875* `event.name`: `"api_refusal"`
870* `event.timestamp`: ISO 8601 타임스탬프876* `event.timestamp`: ISO 8601 타임스탬프
871* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)877* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
872* `model`: 요청의 모델 식별자878* `model`: 요청의 모델 식별자
873* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.879* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.
874* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름). 정의는 [`api_request`](#api-request-event)를 참조하세요.880* `query_source`: 요청을 발급한 하위 시스템(예: `"repl_main_thread"`, `"compact"`, 또는 하위 에이전트 이름). 정의는 [`api_request`](#api-request-event)를 참조하세요.
875* `speed`: [빠른 모드](/docs/ko/fast-mode)가 활성화되었을 때 `"fast"`, 또는 `"normal"`881* `speed`: [빠른 모드](/docs/ko/fast-mode)가 활성화되었을 때 `"fast"`, 또는 `"normal"`
876* `attempt`: 재시도 시도 번호. 첫 번째 시도는 `1`입니다.882* `attempt`: 재시도 시도 번호. 첫 번째 시도는 `1`입니다.
877* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level). 모델이 노력을 지원하지 않을 때는 없습니다.883* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level). Claude Code가 노력 수준을 보내지 않을 때(예: 노력을 지원하지 않는 모델)는 없습니다.
878* `server_fallback_hop`: API의 서버 측 모델 폴백이 이미 이 거부를 다른 모델에서 재시도했으므로 사용자가 이 특정 거부를 보지 못했을 때 `true`. 요청이 거부로 끝났을 때 `false`. 단일 턴은 폴백 모델도 거부할 때 나중의 `false` 최종 이벤트와 `true` 홉 이벤트를 모두 내보낼 수 있습니다.884* `server_fallback_hop`: API의 서버 측 모델 폴백이 이미 이 거부를 다른 모델에서 재시도했으므로 사용자가 이 특정 거부를 보지 못했을 때 `true`. 요청이 거부로 끝났을 때 `false`. 단일 턴은 폴백 모델도 거부할 때 `true` 홉 이벤트와 나중의 `false` 최종 이벤트를 모두 내보낼 수 있습니다.
879* `has_category`: API 응답이 `"cyber"`, `"bio"`, `"frontier_llm"`, 또는 `"reasoning_extraction"`의 `stop_details.category`를 전달했을 때 `true`. 응답이 범주를 전달하지 않았거나 해당 집합 외의 값을 전달했을 때 `false`. `server_fallback_hop`이 `true`일 때는 없습니다(홉 블록은 `stop_details`를 전달하지 않음).885* `has_category`: API 응답이 `"cyber"`, `"bio"`, `"frontier_llm"`, 또는 `"reasoning_extraction"`의 `stop_details.category`를 전달했을 때 `true`. 응답이 범주를 전달하지 않았거나 해당 집합 외의 값을 전달했을 때 `false`. `server_fallback_hop`이 `true`일 때는 없습니다(홉 블록은 `stop_details`를 전달하지 않음).
880* `has_explanation`: API 응답이 `stop_details.explanation`을 전달했을 때 `true`, 그 외에는 `false`. `server_fallback_hop`이 `true`일 때는 없습니다.886* `has_explanation`: API 응답이 `stop_details.explanation`을 전달했을 때 `true`, 그 외에는 `false`. `server_fallback_hop`이 `true`일 때는 없습니다.
881* `category`: API 응답의 `stop_details.category` 값. `"cyber"`, `"bio"`, `"frontier_llm"`, 또는 `"reasoning_extraction"` 중 하나. `OTEL_LOG_TOOL_DETAILS=1`이 설정되고 `has_category`가 `true`일 때만 있습니다.887* `category`: API 응답의 `stop_details.category` 값. `"cyber"`, `"bio"`, `"frontier_llm"`, 또는 `"reasoning_extraction"` 중 하나입니다. `OTEL_LOG_TOOL_DETAILS=1`이 설정되고 `has_category`가 `true`일 때만 있습니다.
882* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 수정 동작은 [비용 카운터](#cost-counter)를 참조하세요.888* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: 요청에 대한 스킬, 플러그인, 에이전트, 및 MCP 속성. 정의 및 삭제 동작은 [비용 카운터](#cost-counter)를 참조하세요.
883 889
884<h4 id="api-request-body-event">890<h4 id="api-request-body-event">
885 API 요청 본문 이벤트891 API 요청 본문 이벤트
894* 모든 [표준 속성](#standard-attributes)900* 모든 [표준 속성](#standard-attributes)
895* `event.name`: `"api_request_body"`901* `event.name`: `"api_request_body"`
896* `event.timestamp`: ISO 8601 타임스탬프902* `event.timestamp`: ISO 8601 타임스탬프
897* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)903* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
898* `body`: JSON 직렬화된 Messages API 요청 매개변수(예: 시스템 프롬프트, 메시지, 및 도구)(콘텐츠 제한(기본값 60KB)에서 잘림). 이전 어시스턴트 턴의 확장 사고 콘텐츠는 수정됩니다. 인라인 모드(`OTEL_LOG_RAW_API_BODIES=1`)에서만 내보냅니다.904* `body`: JSON 직렬화된 Messages API 요청 매개변수(시스템 프롬프트, 메시지, 및 도구 등)(콘텐츠 제한(기본값 60KB)에서 잘림). 이전 어시스턴트 턴의 확장 생각 콘텐츠는 삭제됩니다. 인라인 모드(`OTEL_LOG_RAW_API_BODIES=1`)에서만 내보냅니다.
899* `body_ref`: 잘리지 않은 본문을 포함하는 `<dir>/<uuid>.request.json` 파일의 절대 경로. 파일 모드(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)에서만 내보냅니다.905* `body_ref`: 잘리지 않은 본문을 포함하는 `<dir>/<uuid>.request.json` 파일의 절대 경로. 파일 모드(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)에서만 내보냅니다.
900* `body_length`: 잘리지 않은 본문 길이. `OTEL_LOG_RAW_API_BODIES=file:<dir>`일 때 UTF-8 바이트, 또는 `=1`일 때 UTF-16 코드 단위906* `body_length`: 잘리지 않은 본문 길이. `OTEL_LOG_RAW_API_BODIES=file:<dir>`일 때 UTF-8 바이트, 또는 `=1`일 때 UTF-16 코드 단위
901* `body_truncated`: 인라인 잘림이 발생했을 때 `"true"`. 파일 모드 및 잘림이 발생하지 않았을 때는 없습니다.907* `body_truncated`: 인라인 잘림이 발생했을 때 `"true"`. 파일 모드 및 잘림이 발생하지 않았을 때는 없습니다.
909 915
910`OTEL_LOG_RAW_API_BODIES`가 설정되었을 때 각 성공적인 API 응답에 대해 기록됩니다.916`OTEL_LOG_RAW_API_BODIES`가 설정되었을 때 각 성공적인 API 응답에 대해 기록됩니다.
911 917
912파일 모드(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)에서 Claude Code는 또한 각 성공적인 응답에 대해 `<dir>/index.jsonl`에 하나의 JSON 라인을 추가합니다. 필드는 `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, 및 `response_file`입니다. 이를 읽어 원격 측정 백엔드를 쿼리하지 않고 주어진 트랜스크립트 메시지 뒤의 요청 및 응답 파일을 찾으세요. 인덱스 파일은 Claude Code v2.1.274 이상 필요합니다.918파일 모드(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)에서 Claude Code는 또한 각 성공적인 응답에 대해 `<dir>/index.jsonl`에 하나의 JSON 라인을 추가하며, `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, 및 `response_file` 필드를 포함합니다. 이를 읽어 원격 측정 백엔드를 쿼리하지 않고 주어진 기록 메시지 뒤의 요청 및 응답 파일을 찾습니다. 인덱스 파일은 Claude Code v2.1.274 이상 필요합니다.
913 919
914**이벤트 이름**: `claude_code.api_response_body`920**이벤트 이름**: `claude_code.api_response_body`
915 921
918* 모든 [표준 속성](#standard-attributes)924* 모든 [표준 속성](#standard-attributes)
919* `event.name`: `"api_response_body"`925* `event.name`: `"api_response_body"`
920* `event.timestamp`: ISO 8601 타임스탬프926* `event.timestamp`: ISO 8601 타임스탬프
921* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)927* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
922* `body`: JSON 직렬화된 Messages API 응답(id, 콘텐츠 블록, 사용량, 및 중지 이유 포함)(콘텐츠 제한(기본값 60KB)에서 잘림). 확장 사고 콘텐츠는 수정됩니다. 인라인 모드(`OTEL_LOG_RAW_API_BODIES=1`)에서만 내보냅니다.928* `body`: JSON 직렬화된 Messages API 응답(ID, 콘텐츠 블록, 사용량, 및 중지 이유 포함)(콘텐츠 제한(기본값 60KB)에서 잘림). 확장 생각 콘텐츠는 삭제됩니다. 인라인 모드(`OTEL_LOG_RAW_API_BODIES=1`)에서만 내보냅니다.
923* `body_ref`: 잘리지 않은 본문을 포함하는 `<dir>/<request_id>.response.json` 파일의 절대 경로. 파일 모드(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)에서만 내보냅니다.929* `body_ref`: 잘리지 않은 본문을 포함하는 `<dir>/<request_id>.response.json` 파일의 절대 경로. 파일 모드(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)에서만 내보냅니다.
924* `body_length`: 잘리지 않은 본문 길이. `OTEL_LOG_RAW_API_BODIES=file:<dir>`일 때 UTF-8 바이트, 또는 `=1`일 때 UTF-16 코드 단위930* `body_length`: 잘리지 않은 본문 길이. `OTEL_LOG_RAW_API_BODIES=file:<dir>`일 때 UTF-8 바이트, 또는 `=1`일 때 UTF-16 코드 단위
925* `body_truncated`: 인라인 잘림이 발생했을 때 `"true"`. 파일 모드 및 잘림이 발생하지 않았을 때는 없습니다.931* `body_truncated`: 인라인 잘림이 발생했을 때 `"true"`. 파일 모드 및 잘림이 발생하지 않았을 때는 없습니다.
928* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.934* `request_id`: 응답의 `request-id` 헤더에서 Anthropic API 요청 ID(예: `"req_011..."`). API가 반환할 때만 있습니다.
929* `request_body_id`: 이 응답이 답변하는 [`api_request_body` 이벤트](#api-request-body-event)의 `request_body_id`. Claude Code v2.1.274 이상 필요935* `request_body_id`: 이 응답이 답변하는 [`api_request_body` 이벤트](#api-request-body-event)의 `request_body_id`. Claude Code v2.1.274 이상 필요
930* `message.id`: API가 응답에 할당한 메시지 ID(응답 본문의 `id` 필드). Claude Code v2.1.274 이상 필요936* `message.id`: API가 응답에 할당한 메시지 ID(응답 본문의 `id` 필드). Claude Code v2.1.274 이상 필요
931* `message.uuid`: 응답의 최종 트랜스크립트 항목의 UUID. `request_body_id`와 함께 트랜스크립트 메시지를 요청 및 응답 본문에 연결합니다. Claude Code v2.1.274 이상 필요937* `message.uuid`: 응답의 최종 기록 항목의 UUID. `request_body_id`와 함께 기록 메시지를 뒤의 요청 및 응답 본문에 연결합니다. Claude Code v2.1.274 이상 필요
932 938
933<h4 id="tool-decision-event">939<h4 id="tool-decision-event">
934 도구 결정 이벤트940 도구 결정 이벤트
935</h4>941</h4>
936 942
937도구 권한 결정(수락/거부)이 내려질 때 기록됩니다.943도구 권한 결정이 이루어질 때(수락/거부) 기록됩니다.
938 944
939**이벤트 이름**: `claude_code.tool_decision`945**이벤트 이름**: `claude_code.tool_decision`
940 946
943* 모든 [표준 속성](#standard-attributes)949* 모든 [표준 속성](#standard-attributes)
944* `event.name`: `"tool_decision"`950* `event.name`: `"tool_decision"`
945* `event.timestamp`: ISO 8601 타임스탬프951* `event.timestamp`: ISO 8601 타임스탬프
946* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)952* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
947* `tool_name`: 도구의 이름(예: "Read", "Edit", "Write", "NotebookEdit")953* `tool_name`: 도구의 이름(예: "Read", "Edit", "Write", "NotebookEdit")
948* `tool_use_id`: 이 도구 호출의 고유 식별자. 훅에 전달된 `tool_use_id`와 일치하여 OTel 이벤트와 훅 캡처 데이터 간의 상관 관계를 허용합니다.954* `tool_use_id`: 이 도구 호출의 고유 식별자. 훅에 전달된 `tool_use_id`와 일치하여 OTel 이벤트와 훅 캡처 데이터 간의 상관 관계를 허용합니다.
949* `decision`: `"accept"` 또는 `"reject"`955* `decision`: `"accept"` 또는 `"reject"`
950* `tool_source`: 항상 있습니다. 도구의 출처(CLI 작성 값의 폐쇄 집합). Claude Code v2.1.214 이상 필요956* `tool_source`: 항상 있습니다. 도구의 출처(CLI 작성 값의 폐쇄 집합). Claude Code v2.1.214 이상 필요
951 * `"builtin"`: CLI 자체의 도구957 * `"builtin"`: CLI 자체의 도구
952 * `"mcp"`: 일반적으로 MCP 서버958 * `"mcp"`: 일반적으로 MCP 서버
953 * `"sdk_host_builtin_mcp"`: Claude Desktop 자체에 내장된 프로세스 내 서버(Claude Desktop이 소유한 세션). Claude Desktop은 자신의 진입점 중 하나(`claude-desktop`, `claude-desktop-3p`, 또는 `local-agent`)에서 시작한 세션을 소유합니다. 중첩된 자식이 아닐 때(Claude Code 자체가 생성하는 세션을 포함한 중첩된 세션은 이러한 서버를 `"mcp"`로 보고).959 * `"sdk_host_builtin_mcp"`: Claude Desktop 자체에 내장된 프로세스 내 서버(Claude Desktop이 소유한 세션). Claude Desktop은 자신의 엔드포인트 중 하나(`claude-desktop`, `claude-desktop-3p`, 또는 `local-agent`)에서 시작한 세션을 소유합니다(해당 세션이 중첩된 자식이 아닐 때); 중첩된 세션(Claude Code 자체가 생성하는 세션 포함)은 이러한 서버를 `"mcp"`로 보고합니다.
954* `source`: 결정이 어디서 나왔는지:960* `source`: 결정이 나온 위치:
955 * `"config"`: 프롬프트 없이 자동으로 결정됨. 프로젝트 설정, 사용자의 개인 설정의 허용 또는 거부 규칙, 엔터프라이즈 관리 정책, `--allowedTools` 또는 `--disallowedTools` 플래그, 활성 권한 모드, 동일한 대화형 CLI 세션의 이전 프롬프트에서의 세션 범위 부여, 또는 도구가 본질적으로 안전하기 때문입니다. 이벤트는 이러한 소스 중 어느 것이 일치했는지 나타내지 않습니다. Claude Code는 또한 권한 프롬프트 요청 자체가 실패할 때 `"config"`을 보고합니다. 예를 들어 Agent SDK의 [`canUseTool`](/docs/ko/agent-sdk/typescript#canusetool) 콜백 또는 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 도구가 잘못된 결과를 반환하거나 입력 스트림이 요청 대기 중에 닫힐 때입니다. v2.1.216 이전에는 Claude Code가 이러한 실패를 `"user_reject"`로 보고했습니다.961 * `"config"`: 프롬프트 없이 자동으로 결정됨(프로젝트 설정, 사용자의 개인 설정의 허용 또는 거부 규칙, 엔터프라이즈 관리 정책, `--allowedTools` 또는 `--disallowedTools` 플래그, 활성 권한 모드, 동일한 대화형 CLI 세션의 이전 프롬프트에서 세션 범위 부여, 또는 도구가 본질적으로 안전하기 때문). 이벤트는 이러한 소스 중 어느 것이 일치했는지 나타내지 않습니다. Claude Code는 또한 권한 프롬프트 요청 자체가 실패할 때(예: Agent SDK의 [`canUseTool`](/docs/ko/agent-sdk/typescript#canusetool) 콜백 또는 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 도구가 잘못된 결과를 반환하거나 입력 스트림이 요청 대기 중에 닫힐 때) `"config"`을 보고합니다. v2.1.216 이전에는 Claude Code가 이러한 실패를 `"user_reject"`로 보고했습니다.
956 * `"hook"`: `PreToolUse` 또는 `PermissionRequest` 훅이 결정을 반환했습니다.962 * `"hook"`: `PreToolUse` 또는 `PermissionRequest` 훅이 결정을 반환했습니다.
957 * `"user_permanent"`: 사용자가 권한 프롬프트에서 "Yes, and don't ask again for ..."을 선택했을 때 내보내집니다. 이는 개인 설정에 허용 규칙을 저장합니다. 대화형 CLI에서는 해당 선택 자체에 대해서만 내보내집니다. 나중의 호출이 저장된 규칙과 일치하면 `"config"`을 내보냅니다. Agent SDK 또는 비대화형 `-p` 세션에서는 초기 선택과 나중의 규칙 일치 모두 `"user_permanent"`를 내보냅니다. 수락으로 취급됩니다.963 * `"user_permanent"`: 사용자가 권한 프롬프트에서 "Yes, and don't ask again for ..."을 선택했을 때 내보내집니다(개인 설정에 허용 규칙을 저장함). 대화형 CLI에서는 해당 선택 자체에만 내보내집니다; 나중의 호출이 저장된 규칙과 일치하면 `"config"`을 내보냅니다. Agent SDK 또는 비대화형 `-p` 세션에서는 초기 선택과 나중의 규칙 일치 모두 `"user_permanent"`를 내보냅니다. 수락으로 취급됩니다.
958 * `"user_temporary"`: 사용자가 권한 프롬프트에서 "Yes"를 선택했거나 파일 편집 또는 읽기 프롬프트에서 세션의 나머지 부분에 대한 액세스를 부여하는 옵션을 선택했을 때 내보내집니다. 대화형 CLI에서는 선택 자체에 대해서만 내보내집니다. 나중의 호출이 해당 세션 범위 부여와 일치하면 `"config"`을 내보냅니다. Agent SDK 또는 비대화형 `-p` 세션에서는 선택과 나중의 일치 모두 `"user_temporary"`를 내보냅니다. 수락으로 취급됩니다.964 * `"user_temporary"`: 사용자가 권한 프롬프트에서 "Yes"를 선택했거나 파일 편집 또는 읽기 프롬프트에서 세션의 나머지 부분에 대한 액세스를 부여하는 옵션을 선택했을 때 내보내집니다. 대화형 CLI에서는 해당 선택 자체에만 내보내집니다; 나중의 호출이 해당 세션 범위 부여와 일치하면 `"config"`을 내보냅니다. Agent SDK 또는 비대화형 `-p` 세션에서는 선택과 나중의 일치 모두 `"user_temporary"`를 내보냅니다. 수락으로 취급됩니다.
959 * `"user_abort"`: 사용자가 답변 없이 권한 프롬프트를 해제했을 때 내보내집니다. Agent SDK 및 비대화형 `-p` 세션에서는 `canUseTool` 또는 `--permission-prompt-tool` 권한 요청이 대기 중일 때 턴을 중단하는 것을 포함합니다. v2.1.216 이전에는 Claude Code가 해당 중단을 `"user_reject"`로 보고했습니다. 거부로 취급됩니다.965 * `"user_abort"`: 사용자가 권한 프롬프트를 답변 없이 해제했을 때 내보내집니다. Agent SDK 및 비대화형 `-p` 세션에서는 `canUseTool` 또는 `--permission-prompt-tool` 권한 요청이 대기 중인 동안 턴을 중단하는 것을 포함합니다; v2.1.216 이전에는 Claude Code가 해당 중단을 `"user_reject"`로 보고했습니다. 거부로 취급됩니다.
960 * `"user_reject"`: 사용자가 프롬프트에서 "No"를 선택했을 때 내보내집니다. 대화형 CLI에서는 해당 선택 자체에 대해서만 내보내집니다. 사용자의 개인 설정의 거부 규칙과 일치하는 호출은 `"config"`을 내보냅니다. Agent SDK 또는 비대화형 `-p` 세션에서는 개인 설정의 거부 규칙과 일치하는 호출이 `"user_reject"`를 내보냅니다. 거부로 취급됩니다.966 * `"user_reject"`: 사용자가 프롬프트에서 "No"를 선택했을 때 내보내집니다. 대화형 CLI에서는 해당 선택 자체에만 내보내집니다; 사용자의 개인 설정의 거부 규칙과 일치하는 호출은 `"config"`을 내보냅니다. Agent SDK 또는 비대화형 `-p` 세션에서는 개인 설정의 거부 규칙과 일치하는 호출이 `"user_reject"`를 내보냅니다. 거부로 취급됩니다.
961* `tool_parameters` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 도구별 매개변수를 포함하는 JSON 문자열. [도구 결과 이벤트](#tool-result-event)와 동일한 형태이지만 `git_commit_id`와 같은 실행 후 필드는 제외됩니다. 권한 결정이 `updatedInput`을 통해 도구 입력을 다시 쓸 경우 수락된 호출의 `tool_result`와 값이 다를 수 있습니다. 이 속성을 사용하여 `decision`이 `"reject"`일 때 어떤 명령이 거부되었는지 확인하세요.967* `tool_parameters` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 도구별 매개변수를 포함하는 JSON 문자열. [도구 결과 이벤트](#tool-result-event)와 동일한 형태이지만 `git_commit_id`와 같은 실행 후 필드는 제외됩니다. 수락된 호출의 경우 `tool_result`와 다를 수 있습니다(권한 결정이 `updatedInput`을 통해 도구 입력을 다시 쓸 경우). 이 속성을 사용하여 `decision`이 `"reject"`일 때 어느 명령이 거부되었는지 확인합니다.
962 * `"sdk_host_builtin_mcp"` 도구의 경우: `mcp_server_name` 및 `mcp_tool_name`은 `OTEL_LOG_TOOL_DETAILS`가 꺼져 있어도 포함됩니다. 호스트 애플리케이션이 이러한 이름을 정의하기 때문입니다. 이들이 없으면 이러한 기본 제공 서버 중 하나에 대한 거부된 호출은 기본 스트림에서 속성을 지정할 수 없습니다. 사용자 구성 MCP 서버의 경우, 이벤트의 `tool_name`은 항상 리터럴 `"mcp_tool"`이고, 서버 및 도구 이름은 플래그가 켜져 있을 때만 `tool_parameters`에 나타납니다. 인수 콘텐츠는 모든 곳에서 플래그가 필요합니다. Claude Code v2.1.214 이상 필요968 * `"sdk_host_builtin_mcp"` 도구의 경우: `OTEL_LOG_TOOL_DETAILS`가 꺼져 있어도 `mcp_server_name` 및 `mcp_tool_name`이 포함됩니다(호스트 애플리케이션이 이러한 이름을 정의하기 때문); 이들이 없으면 이러한 기본 제공 서버 중 하나에 대한 거부된 호출은 기본 스트림에서 속성화할 수 없습니다. 사용자 구성 MCP 서버의 경우 이벤트의 `tool_name`은 항상 리터럴 `"mcp_tool"`이고, 서버 및 도구 이름은 플래그가 켜져 있을 때만 `tool_parameters`에 나타납니다; 인수 콘텐츠는 모든 곳에서 플래그가 필요합니다. Claude Code v2.1.214 이상 필요
963 * Bash 도구의 경우: `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`를 포함합니다. 데스크톱 앱의 작업 공간 bash 도구도 `tool_name`을 `Bash`로 보고하지만 `bash_command`, `full_command`, 및 `timeout`만 포함합니다.969 * Bash 도구의 경우: `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`를 포함합니다. 데스크톱 앱의 작업 공간 bash 도구도 `tool_name`을 `Bash`로 보고하지만 `bash_command`, `full_command`, 및 `timeout`만 포함합니다.
964 * MCP 도구의 경우: `mcp_server_name`, `mcp_tool_name`을 포함합니다.970 * MCP 도구의 경우: `mcp_server_name`, `mcp_tool_name`을 포함합니다.
965 * Skill 도구의 경우: `skill_name`을 포함합니다.971 * Skill 도구의 경우: `skill_name`을 포함합니다.
969 권한 모드 변경 이벤트975 권한 모드 변경 이벤트
970</h4>976</h4>
971 977
972권한 모드가 변경될 때 기록됩니다. 예를 들어 `Shift+Tab` 순환, 계획 모드 종료, 또는 자동 모드 게이트 확인에서.978권한 모드가 변경될 때(예: `Shift+Tab` 순환, 계획 모드 종료, 또는 자동 모드 게이트 확인) 기록됩니다.
973 979
974**이벤트 이름**: `claude_code.permission_mode_changed`980**이벤트 이름**: `claude_code.permission_mode_changed`
975 981
978* 모든 [표준 속성](#standard-attributes)984* 모든 [표준 속성](#standard-attributes)
979* `event.name`: `"permission_mode_changed"`985* `event.name`: `"permission_mode_changed"`
980* `event.timestamp`: ISO 8601 타임스탬프986* `event.timestamp`: ISO 8601 타임스탬프
981* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)987* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
982* `from_mode`: 이전 권한 모드(예: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, 또는 `"bypassPermissions"`)988* `from_mode`: 이전 권한 모드(예: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, 또는 `"bypassPermissions"`)
983* `to_mode`: 새 권한 모드989* `to_mode`: 새로운 권한 모드
984* `trigger`: 변경을 야기한 것. `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, 또는 `"auto_opt_in"` 중 하나. SDK 또는 브리지에서 전환이 시작될 때는 없습니다.990* `trigger`: 변경을 야기한 것. `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, 또는 `"auto_opt_in"` 중 하나입니다. SDK 또는 브리지에서 전환이 시작될 때는 없습니다.
985 991
986<h4 id="auth-event">992<h4 id="auth-event">
987 인증 이벤트993 인증 이벤트
996* 모든 [표준 속성](#standard-attributes)1002* 모든 [표준 속성](#standard-attributes)
997* `event.name`: `"auth"`1003* `event.name`: `"auth"`
998* `event.timestamp`: ISO 8601 타임스탬프1004* `event.timestamp`: ISO 8601 타임스탬프
999* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1005* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1000* `action`: `"login"` 또는 `"logout"`1006* `action`: `"login"` 또는 `"logout"`
1001* `success`: `"true"` 또는 `"false"`1007* `success`: `"true"` 또는 `"false"`
1002* `auth_method`: 인증 방법(예: `"oauth"`)1008* `auth_method`: 인증 방법(예: `"oauth"`)
1003* `error_category`: 작업이 실패했을 때의 범주별 오류 종류. 원본 오류 메시지는 절대 포함되지 않습니다.1009* `error_category`: 작업이 실패했을 때의 범주별 오류 종류. 원시 오류 메시지는 절대 포함되지 않습니다.
1004* `status_code`: 작업이 HTTP 오류로 실패했을 때의 HTTP 상태 코드(문자열)1010* `status_code`: 작업이 HTTP 오류로 실패했을 때의 HTTP 상태 코드(문자열)
1005 1011
1006<h4 id="mcp-server-connection-event">1012<h4 id="mcp-server-connection-event">
1016* 모든 [표준 속성](#standard-attributes)1022* 모든 [표준 속성](#standard-attributes)
1017* `event.name`: `"mcp_server_connection"`1023* `event.name`: `"mcp_server_connection"`
1018* `event.timestamp`: ISO 8601 타임스탬프1024* `event.timestamp`: ISO 8601 타임스탬프
1019* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1025* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1020* `status`: `"connected"`, `"failed"`, 또는 `"disconnected"`1026* `status`: `"connected"`, `"failed"`, 또는 `"disconnected"`
1021* `transport_type`: 서버 전송(예: `"stdio"`, `"sse"`, 또는 `"http"`)1027* `transport_type`: 서버 전송(예: `"stdio"`, `"sse"`, 또는 `"http"`)
1022* `server_scope`: 서버가 구성된 범위(예: `"user"`, `"project"`, 또는 `"local"`)1028* `server_scope`: 서버가 구성된 범위(예: `"user"`, `"project"`, 또는 `"local"`)
1023* `duration_ms`: 연결 시도 지속 시간(밀리초)1029* `duration_ms`: 밀리초 단위의 연결 시도 기간
1024* `error_code`: 연결이 실패했을 때의 오류 코드1030* `error_code`: 연결이 실패했을 때의 오류 코드
1025* `is_plugin`: 서버가 플러그인에 의해 제공될 때 `true`, 그 외에는 `false`1031* `is_plugin`: 서버가 플러그인에 의해 제공될 때 `true`, 그 외에는 `false`
1026* `plugin_id_hash` (`is_plugin`이 `true`일 때): 플러그인 이름과 마켓플레이스의 안정적인 해시(이름을 노출하지 않고 플러그인별로 이벤트를 그룹화하기 위해). Claude Code는 [플러그인 로드 이벤트](#plugin-loaded-event) 아래에 설명된 대로 계산합니다.1032* `plugin_id_hash` (`is_plugin`이 `true`일 때): 플러그인 이름과 마켓플레이스의 안정적인 해시(이름을 노출하지 않고 플러그인별로 이벤트를 그룹화하기 위해). Claude Code는 [플러그인 로드 이벤트](#plugin-loaded-event)에서 설명한 대로 계산합니다.
1027* `plugin.name` (`is_plugin`이 `true`일 때): 서버를 제공하는 플러그인의 이름. 타사 플러그인의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 리터럴 문자열 `"third-party"`입니다. 이는 기본적으로 로그에 타사 플러그인 이름이 나타나는 것을 방지합니다. 공식 Anthropic 소스의 플러그인은 항상 이름으로 식별됩니다. `plugin_id_hash` 및 `plugin.name` 속성은 자신의 모니터링 백엔드로 흐르며 Anthropic으로 전송되지 않습니다.1033* `plugin.name` (`is_plugin`이 `true`일 때): 서버를 제공하는 플러그인의 이름. 타사 플러그인의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 아닌 경우 리터럴 문자열 `"third-party"`입니다; 이는 기본적으로 로그에 타사 플러그인 이름이 나타나는 것을 방지합니다. 공식 Anthropic 소스의 플러그인은 항상 이름으로 식별됩니다. `plugin_id_hash` 및 `plugin.name` 속성은 자신의 모니터링 백엔드로 흐르며 Anthropic으로 전송되지 않습니다.
1028* `server_name` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 구성된 서버 이름1034* `server_name` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 구성된 서버 이름
1029* `error` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 연결이 실패했을 때의 전체 오류 메시지1035* `error` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 연결이 실패했을 때의 전체 오류 메시지
1030 1036
1032 내부 오류 이벤트1038 내부 오류 이벤트
1033</h4>1039</h4>
1034 1040
1035Claude Code가 예상치 못한 내부 오류를 포착할 때 기록됩니다. 오류 클래스 이름과 errno 스타일 코드만 기록됩니다. 오류 메시지와 스택 추적은 절대 포함되지 않습니다. 이 이벤트는 Amazon Bedrock, Google Cloud의 Agent Platform, 또는 Microsoft Foundry에 대해 실행 중이거나 `DISABLE_ERROR_REPORTING`이 설정되었을 때 내보내지지 않습니다.1041Claude Code가 예상치 못한 내부 오류를 포착할 때 기록됩니다. 오류 클래스 이름과 errno 스타일 코드만 기록됩니다. 오류 메시지와 스택 추적은 절대 포함되지 않습니다. 이 이벤트는 Amazon Bedrock, Google Cloud의 Agent Platform, 또는 Microsoft Foundry에 대해 실행하거나 `DISABLE_ERROR_REPORTING`이 설정되었을 때 내보내지 않습니다.
1036 1042
1037**이벤트 이름**: `claude_code.internal_error`1043**이벤트 이름**: `claude_code.internal_error`
1038 1044
1041* 모든 [표준 속성](#standard-attributes)1047* 모든 [표준 속성](#standard-attributes)
1042* `event.name`: `"internal_error"`1048* `event.name`: `"internal_error"`
1043* `event.timestamp`: ISO 8601 타임스탬프1049* `event.timestamp`: ISO 8601 타임스탬프
1044* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1050* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1045* `error_name`: 오류 클래스 이름(예: `"TypeError"` 또는 `"SyntaxError"`)1051* `error_name`: 오류 클래스 이름(예: `"TypeError"` 또는 `"SyntaxError"`)
1046* `error_code`: 오류에 있을 때의 Node.js errno 코드(예: `"ENOENT"`)1052* `error_code`: 오류에 있을 때 Node.js errno 코드(예: `"ENOENT"`)
1047 1053
1048<h4 id="plugin-installed-event">1054<h4 id="plugin-installed-event">
1049 플러그인 설치 이벤트1055 플러그인 설치 이벤트
1050</h4>1056</h4>
1051 1057
1052플러그인이 설치를 완료할 때 기록됩니다. `claude plugin install` CLI 명령과 대화형 `/plugin` UI 모두에서.1058플러그인이 설치를 완료할 때 기록됩니다(`claude plugin install` CLI 명령 및 대화형 `/plugin` UI 모두).
1053 1059
1054**이벤트 이름**: `claude_code.plugin_installed`1060**이벤트 이름**: `claude_code.plugin_installed`
1055 1061
1058* 모든 [표준 속성](#standard-attributes)1064* 모든 [표준 속성](#standard-attributes)
1059* `event.name`: `"plugin_installed"`1065* `event.name`: `"plugin_installed"`
1060* `event.timestamp`: ISO 8601 타임스탬프1066* `event.timestamp`: ISO 8601 타임스탬프
1061* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1067* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1062* `marketplace.is_official`: 마켓플레이스가 공식 Anthropic 마켓플레이스일 때 `"true"`, 그 외에는 `"false"`1068* `marketplace.is_official`: 마켓플레이스가 공식 Anthropic 마켓플레이스일 때 `"true"`, 그 외에는 `"false"`
1063* `install.trigger`: `"cli"` 또는 `"ui"`1069* `install.trigger`: `"cli"` 또는 `"ui"`
1064* `plugin.name`: 설치된 플러그인의 이름. 타사 마켓플레이스의 경우 `OTEL_LOG_TOOL_DETAILS=1`일 때만 포함됩니다.1070* `plugin.name`: 설치된 플러그인의 이름. 타사 마켓플레이스의 경우 `OTEL_LOG_TOOL_DETAILS=1`일 때만 포함됩니다.
1069 플러그인 로드 이벤트1075 플러그인 로드 이벤트
1070</h4>1076</h4>
1071 1077
1072세션 시작 시 활성화된 플러그인당 한 번 기록됩니다. 이 이벤트를 사용하여 플릿 전체에서 활성화된 플러그인을 인벤토리하세요. `plugin_installed`는 설치 작업 자체를 기록하는 보완입니다.1078세션 시작 시 활성화된 플러그인당 한 번 기록됩니다. 이 이벤트를 사용하여 플릿 전체에서 활성화된 플러그인을 인벤토리하세요(설치 작업 자체를 기록하는 `plugin_installed`의 보완).
1073 1079
1074**이벤트 이름**: `claude_code.plugin_loaded`1080**이벤트 이름**: `claude_code.plugin_loaded`
1075 1081
1078* 모든 [표준 속성](#standard-attributes)1084* 모든 [표준 속성](#standard-attributes)
1079* `event.name`: `"plugin_loaded"`1085* `event.name`: `"plugin_loaded"`
1080* `event.timestamp`: ISO 8601 타임스탬프1086* `event.timestamp`: ISO 8601 타임스탬프
1081* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1087* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1082* `plugin.name`: 플러그인의 이름. 공식 마켓플레이스 및 기본 제공 번들 외부의 플러그인의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `"third-party"`입니다.1088* `plugin.name`: 플러그인의 이름. 공식 마켓플레이스 및 기본 제공 번들 외부의 플러그인의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 아닌 경우 `"third-party"`입니다.
1083* `marketplace.name`: 플러그인이 설치된 마켓플레이스(알려진 경우). `plugin.name`과 동일한 조건에서 `"third-party"`로 수정됩니다.1089* `marketplace.name`: 플러그인이 설치된 마켓플레이스(알려진 경우). `plugin.name`과 동일한 조건에서 `"third-party"`로 삭제됩니다.
1084* `plugin.version`: 플러그인 매니페스트의 버전. 이름이 수정되지 않고 매니페스트가 버전을 선언할 때만 포함됩니다.1090* `plugin.version`: 플러그인 매니페스트의 버전. 이름이 삭제되지 않고 매니페스트가 버전을 선언할 때만 포함됩니다.
1085* `plugin.scope`: 플러그인의 출처 범주: `"official"`, `"community"`, `"org"`, `"user-local"`, 또는 `"default-bundle"`1091* `plugin.scope`: 플러그인의 출처 범주: `"official"`, `"community"`, `"org"`, `"user-local"`, 또는 `"default-bundle"`
1086* `enabled_via`: 플러그인이 활성화되도록 된 방식: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, 또는 `"user-install"`. `"admin-install"` 값은 플러그인이 [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins)에서 조직에 대해 필수 또는 자동 설치로 설정되어 있음을 의미합니다. v2.1.246 이전에는 Claude Code가 이러한 플러그인을 `"user-install"` 또는 `"seed-mount"`로 보고했습니다.1092* `enabled_via`: 플러그인이 활성화되게 된 방식: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, 또는 `"user-install"`. 
1087* `plugin_id_hash`: 플러그인 이름과 마켓플레이스의 결정적 해시(구성된 내보내기로만 전송됨). 이름을 기록하지 않고 플릿 전체에서 로드된 서로 다른 타사 플러그인을 계산할 수 있습니다. [claude.ai에서 동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)의 경우, Claude Code는 플러그인 이름을 claude.ai가 플러그인에 대해 보고하는 마켓플레이스 이름과 함께 해시하거나, 그 외에는 `synced`와 함께 해시합니다. v2.1.246 이전에는 Claude Code가 해시에서 claude.ai가 보고하는 마켓플레이스 이름을 사용하지 않았습니다.1093 `"admin-install"` 값은 플러그인이 [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins)에서 조직에 필수 또는 자동 설치로 설정되어 있음을 의미합니다. v2.1.246 이전에는 Claude Code가 이러한 플러그인을 `"user-install"` 또는 `"seed-mount"`로 보고했습니다.
1094* `plugin_id_hash`: 플러그인 이름과 마켓플레이스의 결정적 해시(구성된 내보내기로만 전송됨). 이름을 기록하지 않고 플릿 전체에서 로드된 서로 다른 타사 플러그인을 계산할 수 있습니다. [claude.ai에서 동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)의 경우 Claude Code는 플러그인 이름을 claude.ai가 플러그인에 대해 보고하는 마켓플레이스 이름 또는 그 외의 경우 `synced`와 함께 해시합니다. v2.1.246 이전에는 Claude Code가 해시에서 claude.ai가 보고하는 마켓플레이스 이름을 사용하지 않았습니다.
1088* `has_hooks`: 플러그인이 훅을 제공하는지 여부1095* `has_hooks`: 플러그인이 훅을 제공하는지 여부
1089* `has_mcp`: 플러그인이 MCP 서버를 제공하는지 여부1096* `has_mcp`: 플러그인이 MCP 서버를 제공하는지 여부
1090* `host_owned_mcp`: SDK 호스트가 이 플러그인의 MCP 연결을 관리하고 Claude Code가 플러그인의 MCP 서버 구성 읽기를 건너뛸 때 `true`, 그 외에는 `false`. Claude Code v2.1.172 이상 필요1097* `host_owned_mcp`: SDK 호스트가 이 플러그인의 MCP 연결을 관리하고 Claude Code가 플러그인의 MCP 서버 구성 읽기를 건너뛸 때 `true`, 그 외에는 `false`. Claude Code v2.1.172 이상 필요
1091* `skill_path_count`: 플러그인이 선언하는 스킬 디렉토리 수1098* `skill_path_count`: 플러그인이 선언하는 스킬 디렉토리 수
1092* `command_path_count`: 플러그인이 선언하는 명령 디렉토리 수1099* `command_path_count`: 플러그인이 선언하는 명령 디렉토리 수
1093* `agent_path_count`: 플러그인이 선언하는 에이전트 디렉토리 수1100* `agent_path_count`: 플러그인이 선언하는 에이전트 디렉토리 수
1094* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. 안전 모드에서 이 이벤트는 구성된 인벤토리만 보고합니다. 플러그인의 명령, 스킬, 훅, 및 MCP 서버는 로드되지 않습니다. Claude Code v2.1.169 이상 필요1101* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. 안전 모드에서 이 이벤트는 구성된 인벤토리만 보고합니다; 플러그인의 명령, 스킬, 훅, 및 MCP 서버는 로드되지 않습니다. Claude Code v2.1.169 이상 필요
1095 1102
1096<h4 id="skill-activated-event">1103<h4 id="skill-activated-event">
1097 스킬 활성화 이벤트1104 스킬 활성화 이벤트
1098</h4>1105</h4>
1099 1106
1100스킬이 호출될 때 기록됩니다. Claude가 Skill 도구를 통해 호출하든 `/` 명령으로 실행하든.1107스킬이 호출될 때 기록됩니다(Claude가 Skill 도구를 통해 호출하거나 `/` 명령으로 실행할 때).
1101 1108
1102**이벤트 이름**: `claude_code.skill_activated`1109**이벤트 이름**: `claude_code.skill_activated`
1103 1110
1106* 모든 [표준 속성](#standard-attributes)1113* 모든 [표준 속성](#standard-attributes)
1107* `event.name`: `"skill_activated"`1114* `event.name`: `"skill_activated"`
1108* `event.timestamp`: ISO 8601 타임스탬프1115* `event.timestamp`: ISO 8601 타임스탬프
1109* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1116* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1110* `skill.name`: 스킬의 이름. 사용자 정의 및 타사 플러그인 스킬의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 플레이스홀더 `"custom_skill"`입니다.1117* `skill.name`: 스킬의 이름. 사용자 정의 및 타사 플러그인 스킬의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 아닌 경우 플레이스홀더 `"custom_skill"`입니다.
1111* `invocation_trigger`: 스킬이 트리거된 방식(`"user-slash"`, `"claude-proactive"`, 또는 `"nested-skill"`)1118* `invocation_trigger`: 스킬이 트리거된 방식(`"user-slash"`, `"claude-proactive"`, 또는 `"nested-skill"`)
1112* `skill.source`: 스킬이 로드된 위치(예: `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)1119* `skill.source`: 스킬이 로드된 위치(예: `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)
1113* `skill.kind`: 스킬이 워크플로우 스킬일 때 `"workflow"`. 그 외에는 없습니다.1120* `skill.kind`: 스킬이 워크플로우 스킬일 때 `"workflow"`. 그 외에는 없습니다.
1114* `plugin.name` (`OTEL_LOG_TOOL_DETAILS=1`이거나 플러그인이 공식 마켓플레이스에서 나올 때): 스킬이 플러그인에 의해 제공될 때의 소유 플러그인의 이름1121* `plugin.name` (`OTEL_LOG_TOOL_DETAILS=1`이거나 플러그인이 공식 마켓플레이스에서 온 경우): 스킬이 플러그인에 의해 제공될 때 소유 플러그인의 이름
1115* `marketplace.name` (`OTEL_LOG_TOOL_DETAILS=1`이거나 플러그인이 공식 마켓플레이스에서 나올 때): 스킬이 플러그인에 의해 제공될 때, 소유 플러그인이 설치된 마켓플레이스1122* `marketplace.name` (`OTEL_LOG_TOOL_DETAILS=1`이거나 플러그인이 공식 마켓플레이스에서 온 경우): 스킬이 플러그인에 의해 제공될 때 소유 플러그인이 설치된 마켓플레이스
1116 1123
1117<h4 id="at-mention-event">1124<h4 id="at-mention-event">
1118 @ 멘션 이벤트1125 @ 멘션 이벤트
1119</h4>1126</h4>
1120 1127
1121Claude Code가 프롬프트의 `@`-멘션을 해결할 때 기록됩니다. 모든 멘션이 이벤트를 내보내는 것은 아닙니다. 권한 거부, 과도한 파일, PDF 참조 첨부, 및 디렉토리 나열 실패와 같은 조기 종료 경로는 로깅 없이 반환됩니다.1128Claude Code가 프롬프트의 `@` 멘션을 해결할 때 기록됩니다. 모든 멘션이 이벤트를 내보내는 것은 아닙니다: 권한 거부, 과도한 파일, PDF 참조 첨부, 및 디렉토리 목록 실패와 같은 조기 종료 경로는 로깅 없이 반환됩니다.
1122 1129
1123**이벤트 이름**: `claude_code.at_mention`1130**이벤트 이름**: `claude_code.at_mention`
1124 1131
1127* 모든 [표준 속성](#standard-attributes)1134* 모든 [표준 속성](#standard-attributes)
1128* `event.name`: `"at_mention"`1135* `event.name`: `"at_mention"`
1129* `event.timestamp`: ISO 8601 타임스탬프1136* `event.timestamp`: ISO 8601 타임스탬프
1130* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1137* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1131* `mention_type`: 멘션의 유형(`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). `"peer"` 값은 [다른 Claude Code 세션](/docs/ko/cross-session-messaging) 중 하나를 멘션했음을 의미합니다. Claude Code v2.1.232 이상 필요1138* `mention_type`: 멘션의 유형(`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). 
1139 `"peer"` 값은 [다른 Claude Code 세션](/docs/ko/cross-session-messaging) 중 하나를 멘션했음을 의미합니다. Claude Code v2.1.232 이상 필요
1132* `success`: 멘션이 성공적으로 해결되었는지 여부(`"true"` 또는 `"false"`)1140* `success`: 멘션이 성공적으로 해결되었는지 여부(`"true"` 또는 `"false"`)
1133 1141
1134<h4 id="api-retries-exhausted-event">1142<h4 id="api-retries-exhausted-event">
1135 API 재시도 소진 이벤트1143 API 재시도 소진 이벤트
1136</h4>1144</h4>
1137 1145
1138API 요청이 둘 이상의 시도 후 실패할 때 한 번 기록됩니다. 최종 `api_error` 이벤트와 함께 내보내집니다.1146API 요청이 두 번 이상 시도 후 실패할 때 한 번 기록됩니다. 최종 `api_error` 이벤트와 함께 내보내집니다.
1139 1147
1140**이벤트 이름**: `claude_code.api_retries_exhausted`1148**이벤트 이름**: `claude_code.api_retries_exhausted`
1141 1149
1144* 모든 [표준 속성](#standard-attributes)1152* 모든 [표준 속성](#standard-attributes)
1145* `event.name`: `"api_retries_exhausted"`1153* `event.name`: `"api_retries_exhausted"`
1146* `event.timestamp`: ISO 8601 타임스탬프1154* `event.timestamp`: ISO 8601 타임스탬프
1147* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1155* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1148* `model`: 사용된 모델1156* `model`: 사용된 모델
1149* `error`: 최종 오류 메시지1157* `error`: 최종 오류 메시지
1150* `status_code`: HTTP 상태 코드(숫자). 비HTTP 오류의 경우 없습니다.1158* `status_code`: HTTP 상태 코드(숫자). 비 HTTP 오류의 경우 없습니다.
1151* `total_attempts`: 수행된 총 시도 횟수1159* `total_attempts`: 수행된 총 시도 횟수
1152* `total_retry_duration_ms`: 모든 시도에 걸친 총 벽시계 시간1160* `total_retry_duration_ms`: 모든 시도에 걸친 총 벽시계 시간
1153* `speed`: `"fast"` 또는 `"normal"`1161* `speed`: `"fast"` 또는 `"normal"`
1156 훅 등록 이벤트1164 훅 등록 이벤트
1157</h4>1165</h4>
1158 1166
1159세션 시작 시 구성된 훅당 한 번 기록됩니다. 이 이벤트를 사용하여 플릿 전체에서 활성화된 훅을 인벤토리하세요. 실행별 `hook_execution_start` 및 `hook_execution_complete` 이벤트를 보완합니다.1167세션 시작 시 구성된 훅당 한 번 기록됩니다. 이 이벤트를 사용하여 플릿 전체에서 활성화된 훅을 인벤토리하세요(실행별 `hook_execution_start` 및 `hook_execution_complete` 이벤트의 보완).
1160 1168
1161**이벤트 이름**: `claude_code.hook_registered`1169**이벤트 이름**: `claude_code.hook_registered`
1162 1170
1165* 모든 [표준 속성](#standard-attributes)1173* 모든 [표준 속성](#standard-attributes)
1166* `event.name`: `"hook_registered"`1174* `event.name`: `"hook_registered"`
1167* `event.timestamp`: ISO 8601 타임스탬프1175* `event.timestamp`: ISO 8601 타임스탬프
1168* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1176* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1169* `hook_event`: 훅 이벤트 유형(예: `"PreToolUse"` 또는 `"PostToolUse"`)1177* `hook_event`: 훅 이벤트 유형(예: `"PreToolUse"` 또는 `"PostToolUse"`)
1170* `hook_type`: 훅 구현 유형: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, 또는 `"agent"`1178* `hook_type`: 훅 구현 유형: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, 또는 `"agent"`
1171* `hook_source`: 훅이 정의된 위치: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, 또는 `"pluginHook"`1179* `hook_source`: 훅이 정의된 위치: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, 또는 `"pluginHook"`
1172* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. Claude Code v2.1.169 이상 필요1180* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. Claude Code v2.1.169 이상 필요
1173* `hook_matcher` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 훅 구성에서 설정된 경우의 매처 문자열1181* `hook_matcher` (`OTEL_LOG_TOOL_DETAILS=1`일 때): 훅 구성에서 설정된 경우 훅 구성의 매처 문자열
1174* `plugin.name` (`hook_source`가 `"pluginHook"`일 때): 기여하는 플러그인의 이름. 공식 마켓플레이스 및 기본 제공 번들 외부의 플러그인의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `"third-party"`입니다.1182* `plugin.name` (`hook_source`가 `"pluginHook"`일 때): 기여하는 플러그인의 이름. 공식 마켓플레이스 및 기본 제공 번들 외부의 플러그인의 경우 `OTEL_LOG_TOOL_DETAILS=1`이 아닌 경우 `"third-party"`입니다.
1175* `plugin_id_hash` (`hook_source`가 `"pluginHook"`일 때): 플러그인 이름과 마켓플레이스의 결정적 해시(구성된 내보내기로만 전송됨). 이름을 기록하지 않고 기여하는 서로 다른 플러그인을 계산할 수 있습니다. Claude Code는 [플러그인 로드 이벤트](#plugin-loaded-event) 아래에 설명된 대로 계산합니다.1183* `plugin_id_hash` (`hook_source`가 `"pluginHook"`일 때): 플러그인 이름과 마켓플레이스의 결정적 해시(구성된 내보내기로만 전송됨). 이름을 기록하지 않고 기여하는 서로 다른 플러그인을 계산할 수 있습니다. Claude Code는 [플러그인 로드 이벤트](#plugin-loaded-event)에서 설명한 대로 계산합니다.
1176 1184
1177<h4 id="hook-execution-start-event">1185<h4 id="hook-execution-start-event">
1178 훅 실행 시작 이벤트1186 훅 실행 시작 이벤트
1187* 모든 [표준 속성](#standard-attributes)1195* 모든 [표준 속성](#standard-attributes)
1188* `event.name`: `"hook_execution_start"`1196* `event.name`: `"hook_execution_start"`
1189* `event.timestamp`: ISO 8601 타임스탬프1197* `event.timestamp`: ISO 8601 타임스탬프
1190* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1198* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1191* `hook_event`: 훅 이벤트 유형(예: `"PreToolUse"` 또는 `"PostToolUse"`)1199* `hook_event`: 훅 이벤트 유형(예: `"PreToolUse"` 또는 `"PostToolUse"`)
1192* `hook_name`: 매처를 포함한 전체 훅 이름(예: `"PreToolUse:Write"`)1200* `hook_name`: 매처를 포함한 전체 훅 이름(예: `"PreToolUse:Write"`)
1193* `num_hooks`: 일치하는 훅 명령 수1201* `num_hooks`: 일치하는 훅 명령 수
1194* `managed_only`: 관리 정책 훅만 허용될 때 `"true"`1202* `managed_only`: 관리 정책 훅만 허용될 때 `"true"`
1195* `hook_source`: `"policySettings"` 또는 `"merged"`1203* `hook_source`: `"policySettings"` 또는 `"merged"`
1196* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. Claude Code v2.1.169 이상 필요1204* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. Claude Code v2.1.169 이상 필요
1197* `hook_definitions`: JSON 직렬화된 훅 구성. 상세 베타 추적과 `OTEL_LOG_TOOL_DETAILS=1`이 모두 활성화되었을 때만 포함됨1205* `hook_definitions`: JSON 직렬화된 훅 구성. 상세 베타 추적과 `OTEL_LOG_TOOL_DETAILS=1`이 모두 활성화되었을 때만 포함됩니다.
1198 1206
1199<h4 id="hook-execution-complete-event">1207<h4 id="hook-execution-complete-event">
1200 훅 실행 완료 이벤트1208 훅 실행 완료 이벤트
1209* 모든 [표준 속성](#standard-attributes)1217* 모든 [표준 속성](#standard-attributes)
1210* `event.name`: `"hook_execution_complete"`1218* `event.name`: `"hook_execution_complete"`
1211* `event.timestamp`: ISO 8601 타임스탬프1219* `event.timestamp`: ISO 8601 타임스탬프
1212* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1220* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1213* `hook_event`: 훅 이벤트 유형1221* `hook_event`: 훅 이벤트 유형
1214* `hook_name`: 매처를 포함한 전체 훅 이름1222* `hook_name`: 매처를 포함한 전체 훅 이름
1215* `num_hooks`: 일치하는 훅 명령 수1223* `num_hooks`: 일치하는 훅 명령 수
1217* `num_blocking`: 차단 결정을 반환한 수1225* `num_blocking`: 차단 결정을 반환한 수
1218* `num_non_blocking_error`: 차단 없이 실패한 수1226* `num_non_blocking_error`: 차단 없이 실패한 수
1219* `num_cancelled`: 완료 전에 취소된 수1227* `num_cancelled`: 완료 전에 취소된 수
1220* `total_duration_ms`: 모든 일치하는 훅의 벽시계 지속 시간1228* `total_duration_ms`: 모든 일치하는 훅의 벽시계 기간
1221* `managed_only`: 관리 정책 훅만 허용될 때 `"true"`1229* `managed_only`: 관리 정책 훅만 허용될 때 `"true"`
1222* `hook_source`: `"policySettings"` 또는 `"merged"`1230* `hook_source`: `"policySettings"` 또는 `"merged"`
1223* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. Claude Code v2.1.169 이상 필요1231* `safe_mode`: 세션이 [`--safe-mode`](/docs/ko/cli-reference)로 시작되었을 때 `"true"`, 그 외에는 `"false"`. Claude Code v2.1.169 이상 필요
1224* `hook_definitions`: JSON 직렬화된 훅 구성. 상세 베타 추적과 `OTEL_LOG_TOOL_DETAILS=1`이 모두 활성화되었을 때만 포함됨1232* `hook_definitions`: JSON 직렬화된 훅 구성. 상세 베타 추적과 `OTEL_LOG_TOOL_DETAILS=1`이 모두 활성화되었을 때만 포함됩니다.
1225 1233
1226<h4 id="hook-plugin-metrics-event">1234<h4 id="hook-plugin-metrics-event">
1227 훅 플러그인 메트릭 이벤트1235 훅 플러그인 메트릭 이벤트
1228</h4>1236</h4>
1229 1237
1230공식 마켓플레이스 플러그인 훅이 호출별 메트릭을 내보낼 때 기록됩니다. 공식 Anthropic 마켓플레이스에서 설치된 플러그인만 이를 내보낼 수 있습니다. 타사 마켓플레이스 플러그인 및 사용자 구성 훅은 이 이벤트로 내보내지 않습니다. 이 이벤트를 사용하여 자신의 관찰성 스택에서 찾기 비율, 비용, 및 지속 시간과 같은 플러그인 동작을 모니터링하세요.1238공식 마켓플레이스 플러그인 훅이 호출별 메트릭을 내보낼 때 기록됩니다. 공식 Anthropic 마켓플레이스에서 설치된 플러그인만 이를 내보낼 수 있습니다. 타사 마켓플레이스 플러그인 및 사용자 구성 훅은 이 이벤트로 내보내지 않습니다. 이 이벤트를 사용하여 자신의 관찰성 스택에서 찾기 비율, 비용, 및 플러그인 동작의 기간과 같은 것을 모니터링합니다.
1231 1239
1232**이벤트 이름**: `claude_code.hook_plugin_metrics`1240**이벤트 이름**: `claude_code.hook_plugin_metrics`
1233 1241
1236* 모든 [표준 속성](#standard-attributes)1244* 모든 [표준 속성](#standard-attributes)
1237* `event.name`: `"hook_plugin_metrics"`1245* `event.name`: `"hook_plugin_metrics"`
1238* `event.timestamp`: ISO 8601 타임스탬프1246* `event.timestamp`: ISO 8601 타임스탬프
1239* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1247* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1240* `plugin_id`: `<name>@<marketplace>` 형식의 플러그인 식별자1248* `plugin_id`: `<name>@<marketplace>` 형식의 플러그인 식별자
1241* `hook_event`: 메트릭을 내보낸 훅 이벤트 유형1249* `hook_event`: 메트릭을 내보낸 훅 이벤트 유형
1242* 최대 20개의 플러그인 내보낸 메트릭 키. 이름은 `^[a-z][a-z0-9_]{0,39}$`와 일치합니다. 값은 부울 또는 숫자입니다.1250* 최대 20개의 플러그인 내보낸 메트릭 키. 이름은 `^[a-z][a-z0-9_]{0,39}$`와 일치합니다. 값은 부울 또는 숫자입니다.
1254* 모든 [표준 속성](#standard-attributes)1262* 모든 [표준 속성](#standard-attributes)
1255* `event.name`: `"compaction"`1263* `event.name`: `"compaction"`
1256* `event.timestamp`: ISO 8601 타임스탬프1264* `event.timestamp`: ISO 8601 타임스탬프
1257* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1265* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1258* `trigger`: `"auto"` 또는 `"manual"`1266* `trigger`: `"auto"` 또는 `"manual"`
1259* `success`: `"true"` 또는 `"false"`1267* `success`: `"true"` 또는 `"false"`
1260* `duration_ms`: 압축 지속 시간1268* `duration_ms`: 압축 기간
1261* `pre_tokens`: 압축 전 대략적인 토큰 수1269* `pre_tokens`: 압축 전 대략적인 토큰 수
1262* `post_tokens`: 압축 후 대략적인 토큰 수1270* `post_tokens`: 압축 후 대략적인 토큰 수
1263* `error`: 압축이 실패했을 때의 오류 메시지1271* `error`: 압축이 실패했을 때의 오류 메시지
1264* `precompute_reuse`: `trigger`가 `"manual"`일 때만 설정됩니다. 자동 압축은 컨텍스트 윈도우가 채워지기 전에 백그라운드에서 요약을 준비할 수 있으며, 이 속성은 `/compact`가 해당 준비된 요약을 재사용했는지 기록합니다. `"hit"`는 재사용되었음을 의미합니다. `"miss_custom_instructions"`, `"miss_hook"`, 및 `"miss_not_ready"`는 대신 새로운 요약이 계산된 이유를 제공합니다. Claude Code v2.1.153 이상 필요1272* `precompute_reuse`: `trigger`가 `"manual"`일 때만 설정됩니다. 자동 압축은 컨텍스트 윈도우가 채워지기 전에 백그라운드에서 요약을 준비할 수 있으며, 이 속성은 `/compact`가 해당 준비된 요약을 재사용했는지 기록합니다. `"hit"`는 재사용되었음을 의미합니다; `"miss_custom_instructions"`, `"miss_hook"`, 및 `"miss_not_ready"`는 대신 새로운 요약이 계산된 이유를 제공합니다. Claude Code v2.1.153 이상 필요
1265 1273
1266<h4 id="subagent-completed-event">1274<h4 id="subagent-completed-event">
1267 하위 에이전트 완료 이벤트1275 하위 에이전트 완료 이벤트
1268</h4>1276</h4>
1269 1277
1270[하위 에이전트](/docs/ko/sub-agents)가 완료되고 이를 시작한 대화에 결과를 반환할 때 기록됩니다. 하위 에이전트 유형별로 도구 사용 및 실행 시간을 롤업하는 데 사용하세요. 토큰 또는 비용 롤업의 경우, 이 이벤트의 `total_tokens`는 최종 요청만 포함하므로 `query_source` `"subagent"`로 필터링된 [토큰 카운터](#token-counter) 및 [비용 카운터](#cost-counter)를 사용하세요. `"subagent"` 범주는 또한 하위 에이전트 이벤트를 내보내지 않는 에이전트 기반 훅의 요청을 계산합니다.1278[하위 에이전트](/docs/ko/sub-agents)가 완료되고 결과를 시작한 대화에 반환할 때 기록됩니다. 하위 에이전트 유형별로 도구 사용 및 실행 시간을 롤업하는 데 사용합니다; 토큰 또는 비용 롤업의 경우 [토큰 카운터](#token-counter) 및 [비용 카운터](#cost-counter)를 `query_source` `"subagent"`로 필터링하여 사용합니다(이 이벤트의 `total_tokens`은 최종 요청만 포함). `"subagent"` 범주는 또한 하위 에이전트 이벤트를 내보내지 않는 에이전트 기반 훅의 요청도 계산합니다.
1271 1279
1272**이벤트 이름**: `claude_code.subagent_completed`1280**이벤트 이름**: `claude_code.subagent_completed`
1273 1281
1276* 모든 [표준 속성](#standard-attributes)1284* 모든 [표준 속성](#standard-attributes)
1277* `event.name`: `"subagent_completed"`1285* `event.name`: `"subagent_completed"`
1278* `event.timestamp`: ISO 8601 타임스탬프1286* `event.timestamp`: ISO 8601 타임스탬프
1279* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1287* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1280* `agent_type`: 하위 에이전트 유형. 기본 제공 에이전트 이름과 공식 마켓플레이스 플러그인의 에이전트는 그대로 나타납니다. 다른 에이전트 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `"custom"`으로 대체됩니다.1288* `agent_type`: 하위 에이전트 유형. 기본 제공 에이전트 이름과 공식 마켓플레이스 플러그인의 에이전트는 그대로 나타납니다; 다른 에이전트 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `"custom"`으로 대체됩니다.
1281* `agent.source`: 에이전트 정의가 어디서 나왔는지: `built-in`, `plugin`, 또는 `userSettings` 또는 `projectSettings`와 같은 사용자 정의 에이전트를 정의한 설정 소스1289* `agent.source`: 에이전트 정의가 나온 위치: `built-in`, `plugin`, 또는 `userSettings` 또는 `projectSettings`와 같은 사용자 정의 에이전트를 정의한 설정 소스
1282* `is_built_in`: 하위 에이전트가 기본 제공 에이전트 유형인지 여부1290* `is_built_in`: 하위 에이전트가 기본 제공 에이전트 유형인지 여부
1283* `is_async`: 하위 에이전트가 [백그라운드](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)에서 실행되었는지 여부1291* `is_async`: 하위 에이전트가 [백그라운드](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)에서 실행되었는지 여부
1284* `total_tokens`: 하위 에이전트의 최종 API 요청의 토큰 풋프린트: 해당 하나의 요청의 입력, 캐시 생성, 캐시 읽기, 및 출력 토큰(대략 완료 시 하위 에이전트의 컨텍스트 크기). 실행 전체에 걸친 합계가 아님1292* `total_tokens`: 하위 에이전트의 최종 API 요청의 토큰 풋프린트: 해당 하나의 요청의 입력, 캐시 생성, 캐시 읽기, 및 출력 토큰(대략 완료 시 하위 에이전트의 컨텍스트 크기). 실행 전체에 걸친 합계가 아닙니다.
1285* `total_tool_uses`: 하위 에이전트가 전체 실행에 걸쳐 수행한 도구 호출 수1293* `total_tool_uses`: 하위 에이전트가 전체 실행에 걸쳐 수행한 도구 호출 수
1286* `duration_ms`: 실행 시간(밀리초)1294* `duration_ms`: 밀리초 단위의 실행 시간
1287* `model`: 하위 에이전트가 실행하도록 해결된 모델1295* `model`: 하위 에이전트가 실행하도록 해결된 모델
1288* `final_model`: 하위 에이전트의 최종 응답을 생성한 모델(폴백과 같은 중간 실행 전환 후 `model`과 다름). Claude Code v2.1.212 이상 필요1296* `final_model`: 하위 에이전트의 최종 응답을 생성한 모델(폴백과 같은 중간 실행 전환 후 `model`과 다름). Claude Code v2.1.212 이상 필요
1289* `model_swapped`: 둘 이상의 모델이 하위 에이전트의 요청을 제공했는지 여부. Claude Code v2.1.212 이상 필요1297* `model_swapped`: 둘 이상의 모델이 하위 에이전트의 요청을 제공했는지 여부. Claude Code v2.1.212 이상 필요
1290* `plugin_id_hash`, `plugin.name`: 플러그인 제공 에이전트에 대해 있습니다. 공식 마켓플레이스 플러그인 이름은 그대로 나타납니다. 다른 플러그인 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `"third-party"`로 대체됩니다.1298* `plugin_id_hash`, `plugin.name`: 플러그인 제공 에이전트에 대해 있습니다. 공식 마켓플레이스 플러그인 이름은 그대로 나타납니다; 다른 플러그인 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `"third-party"`로 대체됩니다.
1291 1299
1292<h4 id="feedback-survey-event">1300<h4 id="feedback-survey-event">
1293 피드백 설문 이벤트1301 피드백 설문 이벤트
1294</h4>1302</h4>
1295 1303
1296세션 품질 설문이 표시되거나 답변될 때 기록됩니다. 설문이 수집하는 것과 이를 제어하는 방법은 [세션 품질 설문](/docs/ko/data-usage#session-quality-surveys)을 참조하세요.1304세션 품질 설문이 표시되거나 답변될 때 기록됩니다. 설문이 수집하는 것과 제어 방법에 대해서는 [세션 품질 설문](/docs/ko/data-usage#session-quality-surveys)을 참조하세요.
1297 1305
1298**이벤트 이름**: `claude_code.feedback_survey`1306**이벤트 이름**: `claude_code.feedback_survey`
1299 1307
1302* 모든 [표준 속성](#standard-attributes)1310* 모든 [표준 속성](#standard-attributes)
1303* `event.name`: `"feedback_survey"`1311* `event.name`: `"feedback_survey"`
1304* `event.timestamp`: ISO 8601 타임스탬프1312* `event.timestamp`: ISO 8601 타임스탬프
1305* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1313* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1306* `event_type`: 설문 생명 주기 이벤트(예: `"appeared"`, `"responded"`, 또는 `"transcript_prompt_appeared"`)1314* `event_type`: 설문 수명 주기 이벤트(예: `"appeared"`, `"responded"`, 또는 `"transcript_prompt_appeared"`)
1307* `appearance_id`: 하나의 설문 인스턴스에 대해 내보낸 이벤트를 연결하는 고유 ID1315* `appearance_id`: 하나의 설문 인스턴스에 대해 내보낸 이벤트를 연결하는 고유 ID
1308* `survey_type`: 이벤트를 생성한 설문. `"session"`은 "Claude가 어떻게 하고 있나요?" 평가 프롬프트입니다.1316* `survey_type`: 이벤트를 생성한 설문. `"session"`은 "Claude가 어떻게 하고 있나요?" 평가 프롬프트입니다.
1309* `response`: `responded` 이벤트의 사용자 선택1317* `response`: `responded` 이벤트의 사용자 선택
1310* `enabled_via_override`: [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/ko/env-vars)이 설정되었을 때 `true`. 부울로 내보내집니다(문자열이 아님). `session` 설문 이벤트에 있습니다. 이 속성으로 필터링하여 플릿 전체에서 재정의가 적용되었는지 확인하세요.1318* `enabled_via_override`: [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/ko/env-vars)이 설정되었을 때 `true`. 부울로 내보내집니다(문자열이 아님). `session` 설문 이벤트에 있습니다. 이 속성을 필터링하여 플릿 전체에서 재정의가 적용되었는지 확인합니다.
1311 1319
1312<h4 id="retention-sweep-event">1320<h4 id="retention-sweep-event">
1313 보존 스윕 이벤트1321 보존 스윕 이벤트
1314</h4>1322</h4>
1315 1323
1316[세션 트랜스크립트 및 기타 애플리케이션 데이터](/docs/ko/claude-directory#cleaned-up-automatically)를 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 설정보다 오래된 것을 삭제하는 보존 정리 스윕의 실행당 한 번 기록됩니다. Claude Code는 스윕을 백그라운드에서 세션당 최대 한 번 실행하며, 아무것도 삭제하지 않는 실행도 이벤트를 내보냅니다. Claude Code가 지난 24시간 동안 동일한 머신의 모든 세션에서 스윕을 실행했다면, 이 세션의 스윕을 최소 10분 이상 지연시키므로 더 빨리 종료되는 세션은 아무것도 내보내지 않습니다. `claude -p`를 `--bare`로 실행하면 Claude Code는 스윕을 실행하지 않으며 아무것도 내보내지 않습니다.1324보존 정리 스윕 실행당 한 번 기록됩니다(이는 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 설정보다 오래된 [세션 기록 및 기타 애플리케이션 데이터](/docs/ko/claude-directory#cleaned-up-automatically)를 삭제합니다). Claude Code는 백그라운드에서 세션당 최대 한 번 스윕을 실행하며, 아무것도 삭제하지 않는 실행도 이벤트를 내보냅니다. Claude Code가 지난 24시간 동안 동일한 머신의 모든 세션에서 스윕을 실행했으면 이 세션의 스윕을 최소 10분 이상 지연하므로 더 빨리 종료되는 세션은 아무것도 내보내지 않습니다. `claude -p`를 `--bare`로 실행하면 Claude Code는 스윕을 실행하지 않고 아무것도 내보내지 않습니다.
1317 1325
1318이 페이지의 모든 OTel 이벤트처럼, 구성한 원격 측정 백엔드로만 이동합니다. Claude Code v2.1.227 이상 필요.1326이 페이지의 모든 OTel 이벤트처럼 구성한 원격 측정 백엔드로만 이동합니다. Claude Code v2.1.227 이상 필요.
1319 1327
1320Claude Code가 보존 기간을 안전하게 결정할 수 없을 때, 스윕을 일시 중지하고 `result`를 `"skipped"`로 설정하고 `skip_reason`을 포함하는 이벤트를 내보냅니다. [관리 설정](/docs/ko/server-managed-settings)이 `cleanupPeriodDays`를 설정할 때, 관리 값은 보존 기간을 고정하고 낮은 우선순위 범위의 설정 파일이 손상되거나 유효하지 않아도 스윕이 실행됩니다. `managed-settings.json` 자체를 읽을 수 없을 때, Claude Code는 [관리 계층](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)이 서버 관리 설정과 같은 다른 곳에서 `cleanupPeriodDays`를 제공하지 않으면 스윕을 일시 중지합니다. 또는 손상된 파일 옆의 `managed-settings.d/` 드롭인. 삭제 카운터 속성은 `result`가 `"complete"`일 때만 있습니다.1328Claude Code가 보존 기간을 안전하게 결정할 수 없으면 스윕을 일시 중지하고 `result`를 `"skipped"`로 설정하고 `skip_reason`을 포함하는 이벤트를 내보냅니다. [관리 설정](/docs/ko/server-managed-settings)이 `cleanupPeriodDays`를 설정하면 관리 값이 보존 기간을 고정하고 낮은 우선순위 범위의 설정 파일이 손상되거나 유효하지 않아도 스윕이 실행됩니다. `managed-settings.json` 자체를 읽을 수 없으면 Claude Code는 [관리 계층](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)이 서버 관리 설정과 같은 다른 곳에서 `cleanupPeriodDays`를 제공하지 않는 한 스윕을 일시 중지합니다. 또는 손상된 파일 옆의 `managed-settings.d/` 드롭인입니다. 삭제 카운터 속성은 `result`가 `"complete"`일 때만 있습니다.
1321 1329
1322**이벤트 이름**: `claude_code.retention_sweep`1330**이벤트 이름**: `claude_code.retention_sweep`
1323 1331
1326* 모든 [표준 속성](#standard-attributes)1334* 모든 [표준 속성](#standard-attributes)
1327* `event.name`: `"retention_sweep"`1335* `event.name`: `"retention_sweep"`
1328* `event.timestamp`: ISO 8601 타임스탬프1336* `event.timestamp`: ISO 8601 타임스탬프
1329* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에 설명됨)1337* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1330* `result`: 스윕이 실행되었을 때 `"complete"`, Claude Code가 일시 중지했을 때 `"skipped"`1338* `result`: 스윕이 실행되었을 때 `"complete"`, Claude Code가 일시 중지했을 때 `"skipped"`
1331* `period_days`: 병합된 설정의 `cleanupPeriodDays` 값(일 단위) 또는 소스가 설정하지 않을 때 `30`. 건너뛴 이벤트에서, 스윕이 사용했을 값(Claude Code가 읽을 수 있는 설정 소스에서 계산됨)1339* `period_days`: 병합된 설정의 `cleanupPeriodDays` 값(일 단위) 또는 소스가 설정하지 않을 때 `30`. 건너뛴 이벤트에서 스윕이 사용했을 값(Claude Code가 읽을 수 있는 설정 소스에서 계산됨)
1332* `used_default`: 읽을 수 있는 설정 소스가 `cleanupPeriodDays`를 설정하지 않을 때 `"true"`, 그 외에는 `"false"`. 완료 이벤트에서, `"true"`는 30일 기본값이 적용되었음을 의미합니다.1340* `used_default`: 읽을 수 있는 설정 소스가 `cleanupPeriodDays`를 설정하지 않을 때 `"true"`, 그 외에는 `"false"`. 완료 이벤트에서 `"true"`는 30일 기본값이 적용되었음을 의미합니다.
1333* `skip_reason`: Claude Code가 스윕을 일시 중지한 이유. `result`가 `"skipped"`일 때만 있습니다:1341* `skip_reason`: Claude Code가 스윕을 일시 중지한 이유. `result`가 `"skipped"`일 때만 있습니다:
1334 * `"user_source_disabled"`: 사용자 설정이 제외됩니다(예: [`--setting-sources`](/docs/ko/cli-reference#cli-flags) 플래그 또는 SDK의 [`settingSources`](/docs/ko/agent-sdk/typescript#options) 옵션에 의해), 그리고 활성화된 소스가 `cleanupPeriodDays`를 제공하지 않습니다.1342 * `"user_source_disabled"`: 사용자 설정이 제외됨(예: [`--setting-sources`](/docs/ko/cli-reference#cli-flags) 플래그 또는 SDK의 [`settingSources`](/docs/ko/agent-sdk/typescript#options) 옵션에 의해) 그리고 활성화된 소스가 `cleanupPeriodDays`를 제공하지 않습니다.
1335 * `"settings_unknowable"`: 설정 파일을 읽거나 구문 분석할 수 없어서 `cleanupPeriodDays` 또는 `desktopSessionCleanupPeriodDays`가 Claude Code가 볼 수 없는 값으로 설정될 수 있습니다.1343 * `"settings_unknowable"`: 설정 파일을 읽거나 구문 분석할 수 없어 `cleanupPeriodDays` 또는 `desktopSessionCleanupPeriodDays`가 Claude Code가 볼 수 없는 값으로 설정될 수 있습니다.
1336 * `"settings_invalid_key_set"`: 설정에 유효성 검사 오류가 있고 `cleanupPeriodDays` 또는 `desktopSessionCleanupPeriodDays`가 명시적으로 설정되어 있어서 기본값으로 폴백하면 해당 설정에 대해 파일을 삭제하거나 유지할 수 있습니다.1344 * `"settings_invalid_key_set"`: 설정에 유효성 검사 오류가 있고 `cleanupPeriodDays` 또는 `desktopSessionCleanupPeriodDays`가 명시적으로 설정되어 있어 기본값으로 폴백하면 해당 설정에 대해 파일을 삭제하거나 유지할 수 있습니다.
1337* `transcripts_deleted`: 스윕이 삭제한 세션 트랜스크립트(최상위 `~/.claude/projects/*/*.jsonl` 파일) 수1345* `transcripts_deleted`: 스윕이 삭제한 세션 기록(최상위 `~/.claude/projects/*/*.jsonl` 파일) 수
1338* `transcripts_exempted_desktop`: 보존 기간을 지난 트랜스크립트 중 스윕이 [Claude Desktop 및 Cowork 규칙](/docs/ko/claude-directory#cleaned-up-automatically) 아래에서 유지한 수. 이들은 `files_past_cutoff`에 계산되지 않습니다. Claude Code v2.1.248 이상 필요1346*
1339* `session_files_deleted`: 세션 파일 스윕이 삭제한 항목 수: 트랜스크립트 및 사이드카, 녹음, 및 도구 결과와 같은 세션별 동반 파일1347
1340* `artifacts_deleted`: 데이터 디렉토리 전체에서 스윕이 삭제한 총 항목(세션 파일 포함). 일부 스윕은 전체 제거된 디렉토리 트리를 하나의 항목으로 계산하고 몇 가지 정리 통과는 카운터에 기여하지 않으므로, 값을 정확한 파일 수보다는 하한으로 취급하세요.1348`transcripts_exempted_desktop`: 보존 기간을 지났지만 스윕이 [Claude Desktop 및 Cowork 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 유지한 기록 수. 이들은 `files_past_cutoff`에 계산되지 않습니다. Claude Code v2.1.248 이상 필요
1341* `files_retained_fresh`: 검사되고 보존 기간 내에 있기 때문에 제자리에 남겨진 파일. 파일별 스윕만 이들을 계산하므로 값은 하한입니다. 0이 아닌 값은 정상적인 정상 상태입니다.1349
1342* `files_past_cutoff`: 보존 기간보다 오래되었지만 스윕이 삭제하지 못한 파일(예: 권한 오류 또는 열린 파일). 0보다 큰 값은 파일이 구성된 보존 기간을 초과했음을 의미합니다. 0은 없었다는 증거가 아닙니다. 전체 디렉토리 제거 실패는 대신 `error_count`에 계산되기 때문입니다.1350* `session_files_deleted`: 세션 파일 스윕이 삭제한 항목 수: 기록 및 사이드카, 녹음, 및 도구 결과와 같은 세션별 동반 파일
1351* `artifacts_deleted`: 데이터 디렉토리 전체에서 스윕이 삭제한 총 항목(세션 파일 포함). 일부 스윕은 제거된 전체 디렉토리 트리를 하나의 항목으로 계산하고 몇 가지 정리 통과는 카운터에 기여하지 않으므로 값을 정확한 파일 수보다는 하한으로 취급합니다.
1352* `files_retained_fresh`: 검사되었으며 보존 기간 내에 있기 때문에 제자리에 남겨진 파일. 파일별 스윕만 이들을 계산하므로 값은 하한입니다; 0이 아닌 값은 정상적인 정상 상태입니다.
1353* `files_past_cutoff`: 보존 기간보다 오래되었지만 스윕이 삭제하지 못한 파일(예: 권한 오류 또는 열린 파일). 0보다 큰 값은 파일이 구성된 보존 기간을 초과했음을 의미합니다; 0은 없었다는 증거가 아닙니다(전체 디렉토리 제거 실패는 대신 `error_count`에 계산되기 때문).
1343* `error_count`: 스윕이 파일을 나열하거나 삭제하는 동안 발생한 오류 수1354* `error_count`: 스윕이 파일을 나열하거나 삭제하는 동안 발생한 오류 수
1344 1355
1356<h4 id="managed-settings-resolved-event">
1357 관리 설정 해결 이벤트
1358</h4>
1359
1360세션이 해결한 [관리 설정](/docs/ko/managed-settings)으로 기록됩니다: 세션 시작 시 한 번, 관리 설정 또는 [정책 도우미](/docs/ko/managed-settings#compute-the-policy-with-a-helper-program)의 상태가 세션 중에 변경될 때 다시, 그리고 Claude Code가 `error.type` 속성이 나열하는 이유 중 하나로 시작을 거부하거나 세션을 종료할 때.
1361이 이벤트를 사용하여 예상치 못한 관리 소스에서 실행 중인 머신, 정책 도우미가 실패하는 머신, 및 머신이 시작을 거부한 이유를 찾습니다.
1362Claude Code v2.1.274 이상 필요.
1363
1364기본적으로 이벤트는 관리 소스 및 정책 도우미의 상태를 전달하지만 설정 자체는 전달하지 않습니다. 삭제된 `managed_settings.settings` 속성 및 `managed_settings.resolved_sha256` 다이제스트를 추가하려면 `OTEL_LOG_MANAGED_SETTINGS=1`을 설정합니다:
1365
1366* 관리 설정, 사용자 설정, 또는 `--settings`의 `env` 블록에서 또는 Claude Code를 시작하는 환경에서 설정합니다. 프로젝트 또는 로컬 설정의 값은 복제된 저장소가 이들을 쓸 수 있기 때문에 켜지 않습니다.
1367* 서버 관리 설정은 변수가 조직이 이미 받는 이벤트에 조직의 자체 삭제된 정책만 추가하기 때문에 [보안 승인 대화](/docs/ko/server-managed-settings#security-approval-dialogs)를 표시하지 않고 설정할 수 있습니다.
1368
1369신뢰하지 않은 폴더에서 대화형 세션에서 Claude Code는 거부 이벤트를 내보내지 않습니다([신뢰](/docs/ko/permissions#what-runs-before-you-trust-a-folder)하지 않은 폴더). 프로젝트 및 로컬 설정이 내보내기를 다른 수집기로 가리킬 수 있기 때문입니다.
1370
1371**이벤트 이름**: `claude_code.managed_settings_resolved`
1372
1373**속성**:
1374
1375* 모든 [표준 속성](#standard-attributes)
1376* `event.name`: `"managed_settings_resolved"`
1377* `event.timestamp`: ISO 8601 타임스탬프
1378* `event.sequence`: 이벤트 순서 지정을 위한 프로세스별 카운터([이벤트 상관 속성](#event-correlation-attributes)에서 설명)
1379* `managed_settings.trigger`: 세션 시작 이벤트의 경우 `"startup"`, 관리 설정 또는 정책 도우미의 상태가 세션 중에 변경되었을 때 `"change"`, 또는 관리 설정 정책이 세션을 중지했을 때 `"refused"`. Claude Code는 마지막 이벤트와 다른 속성이 있을 때만 `change` 이벤트를 보내며, 변경된 설정 값은 `OTEL_LOG_MANAGED_SETTINGS`가 꺼져 있어도 계산됩니다.
1380* `error.type`: Claude Code가 세션을 중지한 이유. `refused` 이벤트에만 있습니다:
1381 * `"helper_failed"`: [정책 도우미 실행이 실패했습니다](/docs/ko/settings-reference#helper-failures).
1382 * `"policy_invalid"`: 관리 설정에 Claude Code가 시작하지 못하게 하는 오류가 있거나 관리 소스가 로드되지 못해 Claude Code가 조직 로그인 적용을 확인할 수 없습니다.
1383 * `"consent_rejected"`: 사용자가 서버 관리 설정의 [보안 승인 대화](/docs/ko/server-managed-settings#security-approval-dialogs)를 거부했습니다.
1384 * `"force_refresh_failed"`: [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh)가 필요로 하는 설정 가져오기가 실패했습니다.
1385 * `"gateway_rejected"`: [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)가 관리 설정 로드에 HTTP 403으로 응답했습니다.
1386 * `"version_below_minimum"`: 이 Claude Code 버전이 [`requiredMinimumVersion`](/docs/ko/settings-reference#requiredminimumversion) 아래이거나 [`requiredMaximumVersion`](/docs/ko/settings-reference#requiredmaximumversion) 위입니다.
1387 * `"_OTHER"`: Claude 앱 게이트웨이 관리 설정 로드가 다른 이유로 실패했습니다.
1388* `managed_settings.sources`: 최소한 하나의 [정책 키](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)를 전달하는 모든 관리 소스(우선순위 순서대로, `first-wins`에서 효과를 갖지 않는 소스 포함). 값은 `"remote"`, MDM 또는 OS 수준 정책의 경우 `"plist"` 또는 `"hklm"`, 관리 설정 파일 및 드롭인의 경우 `"file"`, [포함 호스트](/docs/ko/managed-settings#let-an-embedding-host-add-policy)가 설정을 제공할 때 `"parent"`, 그리고 Claude Code가 [읽을 때](/docs/ko/managed-settings#how-claude-code-combines-managed-sources) [Windows HKCU 레지스트리 값](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)의 경우 `"hkcu"`입니다. 제어 키만 전달하거나 Claude Code가 읽을 수 없는 소스는 나열되지 않습니다. 문자열 배열로 내보내집니다. 관리 소스가 정책 키를 전달하지 않을 때 비어 있습니다.
1389* `managed_settings.source_behavior`: Claude Code가 읽은 [`managedSourcesBehavior`](/docs/ko/settings-reference#managedsourcesbehavior) 값(`"first-wins"` 또는 `"merge"`). 소스가 키를 설정하지 않을 때 `"first-wins"`
1390* `managed_settings.helper.state`: 선택한 MDM 또는 파일 소스가 구성하는 정책 도우미의 상태:
1391 * `"ok"`: 도우미의 출력이 관리 설정으로 제공됩니다.
1392 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"`, 또는 `"schema_rejected"`: 도우미의 마지막 실행이 실패했습니다. [도우미 실패](/docs/ko/settings-reference#helper-failures)가 경우를 설명합니다.
1393 * `"none"`: 도우미가 구성되지 않았거나 이를 구성하는 소스가 MDM 정책 또는 관리 설정 파일이 아닙니다.
1394* `managed_settings.helper.applied`: 도우미의 자체 출력이 관리 설정으로 제공될 때 `"output"`, 그렇지 않을 때 `"none"`
1395* `managed_settings.helper.entry`: Claude Code가 [`policyHelper`](/docs/ko/settings-reference#policyhelper)를 선택했을 때 `"policyHelper"`. 도우미를 선택하지 않았을 때는 없습니다.
1396* `managed_settings.helper.path`: 도우미의 구성된 [`path`](/docs/ko/settings-reference#policyhelper-path). Claude Code가 도우미를 선택했을 때마다 있습니다(도우미가 작동하는지 여부와 관계없이).
1397* `managed_settings.resolved_sha256` (`OTEL_LOG_MANAGED_SETTINGS=1`일 때): 삭제 전 해결된 관리 설정의 SHA-256(JSON으로 직렬화되고 키가 재귀적으로 정렬되고 공백이 없음). 동일한 다이제스트를 가진 머신은 동일한 정책을 실행합니다. Claude Code는 짧은 정책을 추측 해싱으로 복구할 수 있기 때문에 옵트인으로만 다이제스트를 보냅니다. 관리 설정이 해결되지 않았을 때는 없으며, `refused` 이벤트에는 없습니다.
1398* `managed_settings.settings` (`OTEL_LOG_MANAGED_SETTINGS=1`일 때): 해결된 관리 설정의 이름 및 형태(JSON 문자열)이며 값은 삭제됩니다. `refused` 이벤트에는 없습니다. Claude Code는 설정 스키마에서 이를 구축합니다:
1399
1400 * 스키마가 내보내기를 선언하는 설정 이름이고, 스키마가 선언하지 않는 키는 생략됩니다.
1401 * 부울, 숫자, 및 스키마가 `permissions.defaultMode`와 같은 고정 옵션 집합으로 제한하는 문자열 값은 그대로 내보내집니다. `sandbox.network.httpProxyPort` 및 `sandbox.network.socksProxyPort`는 `"[REDACTED]"`로 내보내집니다.
1402 * 모든 다른 문자열(예: `model`, `apiKeyHelper`, 모든 `env` 값, 모든 URL, 및 모든 명령)은 `"[REDACTED]"`로 내보내집니다.
1403 * 맵의 항목 이름(예: `env` 변수 이름 및 플러그인 ID)은 그대로 내보내집니다. 스키마가 항목을 입력하지 않는 설정(예: `vimInsertModeRemaps`)은 단일 `"[REDACTED]"`로 내보내지며, `sandbox.ignoreViolations`는 명령 패턴 없이 경로 목록 목록으로 내보내집니다.
1404 * 목록은 길이를 유지하며 각 항목은 동일한 규칙으로 삭제됩니다.
1405 * `permissions.allow`, `permissions.deny`, 또는 `permissions.ask` 규칙은 도구 이름(이 Claude Code 버전에 기본 제공되거나 `mcp__jira__create_issue`와 같은 `mcp__` 참조인 경우)으로 내보내지며 콘텐츠는 삭제됩니다(예: `Read([REDACTED])`). 다른 규칙은 `"[REDACTED]"`로 내보내집니다.
1406 * 훅은 동일한 규칙을 따르므로 `type` 및 `timeout`과 같은 고정 옵션 및 숫자 필드는 표시되는 반면 각 명령, URL, `matcher`, 및 `if` 조건은 `"[REDACTED]"`로 내보내집니다.
1407
1408 예를 들어 `apiKeyHelper`, 두 개의 `env` 변수, 및 거부 규칙이 있는 관리 설정은 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.
1409
1410 Claude Code는 값을 UTF-8의 8KB에서 자르며, 자른 값은 유효한 JSON이 아닙니다.
1411* `managed_settings.settings_truncated` (`managed_settings.settings`가 있을 때): Claude Code가 `managed_settings.settings`를 8KB에서 자를 때 `true`, 그 외에는 `false`. 부울로 내보내집니다(문자열이 아님).
1412
1345<h2 id="interpret-metrics-and-events-data">1413<h2 id="interpret-metrics-and-events-data">
1346 메트릭 및 이벤트 데이터 해석1414 메트릭 및 이벤트 데이터 해석
1347</h2>1415</h2>
1461감지 규칙을 구축할 때 모니터링하려는 신호를 찾고 해당 이벤트 및 속성에 대해 백엔드를 쿼리합니다:1529감지 규칙을 구축할 때 모니터링하려는 신호를 찾고 해당 이벤트 및 속성에 대해 백엔드를 쿼리합니다:
1462 1530
1463| 신호 | 이벤트 | 주요 속성 |1531| 신호 | 이벤트 | 주요 속성 |
1464| ----------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------ |1532| ---------------------------------------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1465| 도구 호출 허용 또는 거부, 그리고 어떻게 | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |1533| 도구 호출 허용 또는 거부, 그리고 어떻게 | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |
1466| 권한 모드 에스컬레이션 | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1534| 권한 모드 에스컬레이션 | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |
1467| 정책 훅이 작업을 차단함 | `hook_execution_complete` | `hook_event`, `num_blocking` |1535| 정책 훅이 작업을 차단함 | `hook_execution_complete` | `hook_event`, `num_blocking` |
1469| MCP 서버 연결 또는 실패 | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |1537| MCP 서버 연결 또는 실패 | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |
1470| 플러그인 설치 및 출처 | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |1538| 플러그인 설치 및 출처 | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |
1471| 실행된 명령 및 터치된 파일 | `tool_result` (실행됨) 또는 `tool_decision` (거부됨) (`OTEL_LOG_TOOL_DETAILS=1` 포함) | `tool_parameters`; `tool_input` (`tool_result`만 해당) |1539| 실행된 명령 및 터치된 파일 | `tool_result` (실행됨) 또는 `tool_decision` (거부됨) (`OTEL_LOG_TOOL_DETAILS=1` 포함) | `tool_parameters`; `tool_input` (`tool_result`만 해당) |
1540| 머신이 실행되는 관리 설정 소스, 정책 도우미의 상태 및 머신이 시작을 거부한 이유 | `managed_settings_resolved` | `managed_settings.trigger`, `managed_settings.sources`, `managed_settings.source_behavior`, `managed_settings.helper.state`, `error.type`; `managed_settings.settings` 및 `managed_settings.resolved_sha256` (`OTEL_LOG_MANAGED_SETTINGS=1` 포함) |
1472 1541
1473Claude Code는 원본 이벤트 스트림만 내보냅니다. 이상 감지, 기준선 설정, 세션 간 상관 관계 및 경고는 SIEM 또는 관찰성 백엔드의 책임입니다.1542Claude Code는 원본 이벤트 스트림만 내보냅니다. 이상 감지, 기준선 설정, 세션 간 상관 관계 및 경고는 SIEM 또는 관찰성 백엔드의 책임입니다.
1474 1543