OpenTelemetryとは何で、Claude Codeはどう使いますか?
OpenTelemetry(OTel)は可観測性のオープン標準で、メトリクス、イベント(ログ)、トレースの出力方法を定める。公式のモニタリングドキュメントによれば、CLAUDE_CODE_ENABLE_TELEMETRY=1を設定するとClaude Codeはuser_prompt、tool_decision、compaction、hook_registered、hook_execution_complete、at_mention、api_retries_exhaustedなどのclaude_code.*イベントを出力できる。
なぜ存在しますか?
個人のマシンでは画面でClaude Codeの動作がわかるが、チームやCIが「誰がどのhookを読み込んだか」「圧縮が失敗したか」「どのツールが拒否されたか」に答えるには構造化された記録が必要だ。OTelなら、そのデータを独自形式ではなく既存の観測基盤に流せる。
どう有効にしますか?
ドキュメントの最小構成は、CLAUDE_CODE_ENABLE_TELEMETRY=1(必須)と、OTEL_LOGS_EXPORTERをotlp、console、noneのいずれかにすること。コレクターへ送るならOTEL_EXPORTER_OTLP_PROTOCOL(既定値なし、自分で設定)とOTEL_EXPORTER_OTLP_ENDPOINTも設定し、OTEL_LOGS_EXPORT_INTERVALの既定は5000ミリ秒。プロンプトを送ってclaude_code.user_promptが見えれば疎通している。ツールの引数などの詳細は既定では記録されず、OTEL_LOG_TOOL_DETAILS=1が必要だ。
私にとってどういう意味ですか?
チームのClaude Code利用を管理するなら、まずconsole出力でイベントの見た目を確認してからバックエンドを選ぶとよい。イベントは完全な監査証拠ではなく、一部のフィールドは追加のスイッチが必要だ。コレクターを立てての検証はしていない。
公開ドキュメントで確認できる例:claude_code.compactionイベントにはtrigger、pre_tokens、post_tokens、precompute_reuse(hitまたはmiss_*)があり、圧縮の頻度や、バックグラウンドで準備された要約を再利用したかの集計に使える。
メリット:標準形式で既存の観測基盤に流せ、イベントの粒度が細かい。デメリット:コレクターとダッシュボードは自分で用意する必要があり、イベントはセッション単位の記録で完全な監査ではない。