原文(日本語に翻訳)
OTEL_LOG_TOOL_DETAILS=1 設定時、tool_decision テレメトリイベントに tool_parameters(Bash コマンド、MCP/スキル名)が含まれるようになりました。
原文(英語)
tool_decision telemetry events now include tool_parameters (bash commands, MCP/skill names) when OTEL_LOG_TOOL_DETAILS=1
概要
Claude Code の OpenTelemetry テレメトリにおいて、OTEL_LOG_TOOL_DETAILS=1 環境変数を設定した場合、tool_decision イベントに tool_parameters フィールドが追加されるようになりました。このフィールドには実行された Bash コマンドの内容、呼び出された MCP サーバー名・ツール名、スキル名などの詳細情報が含まれます。セキュリティ監査や詳細なオブザーバビリティが必要な環境での可視性が大幅に向上します。
基本的な使い方
OTEL_LOG_TOOL_DETAILS=1 環境変数を設定してから Claude Code を起動します。
bash
# 環境変数を設定して Claude Code を起動
export OTEL_LOG_TOOL_DETAILS=1
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
claudetool_decision イベントには以下のような tool_parameters が含まれます。
json
{
"event.name": "tool_decision",
"tool_name": "Bash",
"tool_decision": "approved",
"tool_parameters": {
"command": "git status"
}
}実践例
セキュリティ監査ログを収集する
SIEM(セキュリティ情報およびイベント管理)システムへの転送用にテレメトリを設定します。
bash
# OpenTelemetry Collector を経由して SIEM に転送
export OTEL_LOG_TOOL_DETAILS=1
export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
export OTEL_SERVICE_NAME=claude-code-audit
claude --bg "セキュリティレビューを実施してください"収集される tool_decision イベントの例:
json
{
"timestamp": "2026-05-29T10:00:00Z",
"event.name": "tool_decision",
"tool_name": "Bash",
"tool_decision": "approved",
"tool_parameters": {
"command": "npm install --save-dev eslint"
},
"session_id": "sess_abc123"
}MCP ツール呼び出しを監視する
MCP サーバーのツール使用状況を追跡します。
json
{
"event.name": "tool_decision",
"tool_name": "mcp_github",
"tool_decision": "approved",
"tool_parameters": {
"mcp_server_name": "github",
"mcp_tool_name": "create_pull_request",
"repository": "my-org/my-repo"
}
}スキルの使用状況を追跡する
どのスキルが呼び出されているかをテレメトリで確認できます。
json
{
"event.name": "tool_decision",
"tool_name": "Skill",
"tool_decision": "approved",
"tool_parameters": {
"skill_name": "code-review:security-check"
}
}Elastic / Datadog / Honeycomb での可視化
yaml
# otel-collector-config.yaml の例
receivers:
otlp:
protocols:
grpc:
endpoint: "0.0.0.0:4317"
exporters:
elasticsearch:
endpoints: ["http://elasticsearch:9200"]
index: "claude-code-telemetry"
service:
pipelines:
logs:
receivers: [otlp]
exporters: [elasticsearch]bash
# 収集後、dangerous なコマンドを検知するクエリ例
# event.name == "tool_decision" AND tool_parameters.command CONTAINS "rm -rf"注意点
OTEL_LOG_TOOL_DETAILS=1は機密情報(ファイルパス、コマンド引数、ツール入力)を含む可能性があります。本番環境での使用は適切なアクセス制御のもとで行ってください。- テレメトリデータを SIEM に転送する場合、個人情報保護規制(GDPR、CCPA など)に準拠したデータ取り扱いが必要です。
tool_parametersはツールの種類によって含まれるフィールドが異なります(Bash:command、MCP:mcp_server_nameとmcp_tool_name、スキル:skill_name)。- このフラグを設定しない場合、
tool_decisionイベントにはツール名と承認/拒否の決定のみが含まれ、詳細なパラメータは記録されません。
関連情報
- Observability with OpenTelemetry - Claude Code Docs
- Claude Code Control and Observability with OpenTelemetry - General Analysis
- Claude Code/Cowork monitoring at scale with Otel & Elastic - Elastic Security Labs
- Monitor Claude Cowork activity with OpenTelemetry - Claude Help Center
- Instrumenting Claude Code: OTel logging for Detection Engineers