🧐

Claude Cowork for TeamのOpenTelemetryモニタリングをGrafanaで可視化する

に公開

株式会社StoreHero CTO 鳥居です。
弊社では、Coworkが全職種の業務効率を大きく変えると考えており、徐々にではありますがエンジニア以外の全社員へClaude Cowork for Teamの展開を進めています。

展開を進めるうえで必要になるのがセキュリティはもちろんのこと、組織・メンバー単位での使用状況の可視化です。誰がどれくらい使っているのか、コストはいくらかかっているのか、効率的な使い方をしているのか。管理者として把握しておきたい情報ですが、Cowork単体ではダッシュボードが提供されていません。

Coworkには2026年2月のエンタープライズプラグインアップデートでOpenTelemetry対応が入り、管理画面から数項目設定するだけでテレメトリデータを外部に送れるようになりました。
この記事では、Grafana CloudでCoworkをモニタリングする環境を構築した手順を紹介します。


Coworkが送るテレメトリデータ

まず、Coworkの管理画面(Admin settings > Cowork > Monitoring)から送れるデータを整理します。

送信されるのはイベント/ログのみです。メトリクスやトレースは含まれません。イベントは以下の5種類です。

イベント名 発火タイミング 主要フィールド
user_prompt ユーザーがプロンプトを送信 prompt_length
api_request Claude APIへのリクエスト model, cost_usd, input_tokens, output_tokens, duration_ms, speed
api_error APIリクエスト失敗 error, status_code
tool_result ツール実行完了 tool_name, success, duration_ms
tool_decision ツール許可/拒否の判定 tool_name, decision, source

各イベントには user_emailsession_idorganization_id などの共通属性が付与されます。prompt.id でプロンプト単位のイベント紐付けも可能です。

ここで重要なのは、Claude Code CLIのOpenTelemetry対応とは別物だという点です。

Claude Code CLI Cowork
設定方法 環境変数 管理画面
送信データ メトリクス + ログ ログのみ
Grafanaでの保存先 Prometheus + Loki Loki のみ

Coworkから送られるのはログだけで、メトリクスは送信されないため、ダッシュボード構築はLokiのLogQLベースになります。


バックエンド選定 — Grafana Cloud

OpenTelemetryのバックエンドとして複数の選択肢を検討しました。

バックエンド Collector不要 認証方式 無料枠 セットアップ
Grafana Cloud 直接送信OK Basic (固定トークン) 10k series, 50GB logs 管理画面に3項目設定するだけ
Google Cloud 要OTel Collector Bearer (1時間で失効) 50GB/月 Collector運用 + ログベースメトリクス定義
SigNoz Cloud 直接送信OK Ingestion Key 30日トライアル 管理画面に3項目設定
Honeycomb 直接送信OK API Key 20M events/月 管理画面に3項目設定

Google Cloudは telemetry.googleapis.com でOTLPネイティブ対応しています。ただし、認証がOAuth Bearer tokenベースで1時間で失効します。Coworkの管理画面には固定値しか設定できないため、OTel Collectorを中間に挟んでADC認証で転送する構成が必要になります。Cloud Runにcollectorを置けばマネージドにはできますが、構成要素が増えます。

【Google Cloudの場合】
Cowork → OTLP → OTel Collector (Cloud Run) → telemetry.googleapis.com → Cloud Logging

                                                                  ログベースメトリクス定義

                                                                  Cloud Monitoring Dashboard

【Grafana Cloudの場合】
Cowork → OTLP → Grafana Cloud (Loki) → LogQLでダッシュボード直接構築

Grafana Cloudは管理画面にエンドポイント・プロトコル・認証ヘッダーの3つを設定するだけで完了します。トークンも固定で失効しません。無料枠の50GB logsはCoworkの利用規模なら十分です。


Grafana Cloudのセットアップ

1. OTLP認証情報の取得

Grafana Cloud Portalにログインし、左メニューから自分のStack名をクリック(またはMy Stackページから選択)して、Detailsタブの 「OpenTelemetry」セクションを開きます。以下の情報を控えます。

  • OTLP Endpoint URL(Grafana管理画面で確認)
  • Instance ID(数字)
  • API Token(Create API Tokenで生成、glc_ で始まる)

2. Cowork管理画面での設定

Admin settings > Cowork > Monitoring に以下を設定します。

設定項目
OTLPエンドポイント YOUR_OLTP_Endpoint
OTLPプロトコル http/protobuf
OTLPヘッダー Authorization=Basic <Base64エンコード済み文字列>

OTLPヘッダーに設定する認証ヘッダーは Basic認証 です。以下のようなコマンドで、Instance IDとAPI Tokenを : で結合し、Base64エンコードします。

echo -n "YOUR_INSTANCE_ID:glc_YOUR_TOKEN" | base64

保存すれば、即座にイベントの送信が始まります。

3. データ到着の確認

Grafana UIでExploreを開き、データソースにLoki(grafanacloud-xxx-logs)を選択します。Label filtersで service_name = cowork を選んでRun queryを実行すれば、ログが表示されます。[1] [2]


ダッシュボードの構築

Lokiのログデータから、5セクション構成のダッシュボードを構築しました。

  • Overview — APIリクエスト数、コスト合計、プロンプト数、エラー数の4つのstatパネル
  • User Activityuser_email でgroup byしたユーザー別のリクエスト数・コスト推移
  • Cost & Tokens — モデル別コスト(円グラフ)、トークン使用量(input/output/cache別)、Speed Mode分布、API応答時間
  • Tool Usage — ツール使用ランキング(棒グラフ)、ツール承認/拒否の推移
  • Errors — エラー数の時系列推移、直近のエラーログ一覧

※導入したばかりなので数値は気にしない

GrafanaダッシュボードのJSONは以下のリポジトリに置きました。Grafana UIのDashboards > New > Importからインポートすれば、そのまま使えます。
https://github.com/StoreHero/claude-cowork-grafana-dashboard


補足: Grafanaの Claude Code Statsプラグインについて

Grafana CloudにはClaude Code Statsというプラグインがあり、Overview、Costs、Tokens、Tools、Productivity、Environmentの6つのダッシュボードがプリセットされています。

ただし、このプラグインはPrometheusメトリクスを参照する設計です。そのため、Cowork非対応です(ログ/イベントのみのため)

Claude Code CLIを併用している場合は、CLI側で環境変数を設定してメトリクスも送ればプラグインが使えます。

export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
export OTEL_EXPORTER_OTLP_ENDPOINT="https://xxxxxxxxxxxxxxx/otlp"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic <Base64文字列>"
export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative

CoworkとCLIの両方のデータを1つのGrafana Cloudに集約できるので、組織全体の利用状況を一元的に把握できます。


おわりに

Coworkの全社展開は始まったばかりですが、使用状況が見えるようになったことで「誰がどれだけ使っているか分からない」という不安はなくなりました。コスト管理の面でも、モデル別・ユーザー別の推移が見えるので、プランの見直しや利用促進の判断に役立ちそうです。

Grafana Cloudへの設定は管理画面の3項目だけで、Collectorの運用も不要です。Coworkのモニタリングを検討している方は、まずこの構成から始めてみてください。

ダッシュボードのJSONはGitHubリポジトリに公開しています。インポートすればそのまま使えますのでぜひご利用下さい!

参考リンク

脚注
  1. ここでの注意点として、service_nameはclaude-codeではなくcoworkです。Claude Code CLIとCoworkではservice_nameが異なります。 ↩︎

  2. また、ログの各フィールド(コスト、トークン数、ユーザー情報など)はJSON本文ではなくLokiのstructured metadataとして格納されています。LogQLでは | json パーサーではなく、メタデータフィールドを直接参照します(例: {service_name="cowork"} | event_name=api_request``)。 ↩︎

株式会社StoreHero

Discussion