コンテンツにスキップ

全社員のClaude Code・Coworkの利用状況をOpenTelemetryとGrafanaで可視化した話

チェック

  • [ ] 本文を確認した
  • [ ] 概要を確認した
  • [ ] タグを確認した
  • [ ] inbox/ 直下へ移行した

概要

全社員のClaude Code/Cowork利用状況を、OpenTelemetryとGrafana/Lokiで可視化した事例。 Claude Team、Claude Max、Coworkなど契約や管理範囲が混在する中で、Admin設定とMDM配布を組み合わせて全員をカバーしている。 managed-settings.json にOTel設定を入れて配布する具体例が実装上のポイント。

本文

課題は、社内のAIツール契約がバラバラなこと。Claude Teamプランが複数組織に分散し、個人契約のClaude Maxユーザーもいる。Admin設定が届く範囲はプランごとに異なるため、1つの配布手段で全員をカバーできない。

Claude Codeには設定スコープが複数ある。

  • Managed: 端末全体に効く組織配布設定
  • User: ~/.claude/settings.json
  • Project: .claude/settings.json
  • Local: .claude/settings.local.json

組織配布で重要なのが managed-settings.json。ユーザー設定やプロジェクト設定では上書きできないため、全社に必ず効かせたい設定に向く。macOSでは /Library/Application Support/ClaudeCode/managed-settings.json、Linux/WSLでは /etc/claude-code/managed-settings.json に置く。

OpenTelemetry設定の配布例。

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_LOG_USER_PROMPTS": "1",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "https://....",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Basic ....."
  }
}

このファイルをJamfなどのMDMで配布すれば、ユーザーが何もしなくてもOTelデータが送信される。

展開は管理経路ごとに分ける。CoworkはClaude TeamのAdmin設定でOpenTelemetryを有効化し、Claude Code/MaxユーザーはMDMで managed-settings.json を全PCへ配布する。これにより、Claude TeamのAdmin設定が届かない層もカバーできる。

資料時点ではCoworkのOpenTelemetry対応が強化され、ツールやコネクタ呼び出し、読み取られたファイル、変更されたファイル、使用されたSkill、手動承認/自動承認などのイベントも取得できるようになっている。

要点

  • Claude利用状況の可視化は、契約・管理経路の違いを吸収する必要がある。
  • Claude Codeは managed-settings.json をMDM配布すると、ユーザー操作なしでOTelを有効化できる。
  • CoworkはAdmin設定、Claude Code/MaxはMDM配布、という組み合わせで全員をカバーする。
  • OTel + Grafana/Lokiにより、利用状況やSkill利用、ツールイベントを観測できる。

タグ

claude-code #opentelemetry #grafana #observability #enterprise-ai #managed-settings