Claude Code活用状況を可視化するダッシュボード構築

Yuki Hayashi

2026.8.19

はじめに

Sreakeでは、AI駆動開発検証チームを中心に、AIツールの活用推進やPlaybook作成、情報収集・検証にも取り組んでいます。その一環として、Claude Codeの利用状況を可視化するためのダッシュボードを作りました。

この記事では、ダッシュボードを作った背景、構成、設計時に工夫した点、運用して見えてきた課題について紹介します。

背景

事業部全体にClaude Codeを配布することになり、SreakeメンバーがClaude Codeを使いこなせる状態を目指すことになりました。そのためには、利用を促進する施策を打つ必要があります。しかし、施策を打つには、まず「使っているか」「どんな使い方をしているか」を把握する必要がありました。利用状況が見えると、普及施策を考えたり、施策の効果を見たりできます。そのような時に、「全エンジニアが Claude Code を 100% 活用する」を目指してダッシュボードを作ったという記事を見ました。

これをきっかけに、利用状況を可視化するダッシュボードを作ることにしました。

ダッシュボードの要件

今回のダッシュボードは、Claude Codeの利用ログを対象にしています。

要件は次の通りです。

  • 利用状況を定量的に見ることができる
  • スラッシュコマンド、スキル、MCP、サブエージェントの利用状況が見える
  • 利用者や案件のプライバシーに関わる情報は収集しない
  • 特定のメッセージやファイルの情報は収集しない
  • 利用者が導入・配布しやすい

構成

構成は次の通りです。

Claude Codeのプラグインとして配布する形にしました。利用者が導入しやすい形にするためです。社内プラグインマーケットプレイスに載せる前提もありました。可視化にはData Studioを使いました。フロントエンドを作らずに、BigQueryのデータを可視化できるためです。データはBigQueryに直接送信しています。サーバを立てる案もありましたが、今回は短期間で構築することと、運用負荷を抑えることを優先しました。

設計判断と工夫

Hookでトランスクリプトを解析する

Claude Codeのセッションログは、ローカルのJSONLに保存されます。プラグインでは、tool_useやスラッシュコマンドを解析し、利用状況を集計します。

StopではなくSessionEndを使う

HookにはSessionEndを使いました。ctrl+Cなどで終了した場合も拾いやすくするためです。

重複送信を防ぐ

重複送信を防ぐため、stateファイルで次の情報を持つようにしました。

  • session_id
  • last_sent_line
  • last_sent_at

送信済みの行を再送しないようにしています。

運用して見えた課題

ユーザ名の取得が環境によって揺れる

運用中に、ある日突然、ubuntu という意図しないユーザ名が出現しました。WSLでは、ユーザ名が ubuntu になるケースがありました。お客様環境のインスタンス上でClaude Codeを利用する場合などです。この課題に対して、ユーザ名を設定可能にしました。候補として、gitのユーザ名を使う案と、環境変数を使う案がありました。環境による違いなので、環境変数にする方が一般的なプラクティスとして良さそうだと判断しました。

また、手順数の観点でも環境変数の方が少ないと考えました。gitなどでユーザ名を管理する場合は、次の工数が発生します。

  • プラグイン利用者からユーザネームをもらう
  • 管理者側で登録する
  • 保守する

環境変数にする場合は、プラグイン利用者が環境変数を設定すればよいだけです。そのため、今回は環境変数を使う方針にしました。

VSCode拡張から起動したセッションへの対応

VSCode拡張から起動したClaude Codeセッションでも、利用状況をBigQueryに送信できるようにしました。対応内容は次の3点です。

  1. Stopイベントでもhookをトリガーする
  2. Stop / SessionEndの並行発火によるstate競合を防ぐ排他ロックを追加する
  3. user message content の配列形式に対応する

背景として、VSCode拡張で起動されたClaude Codeセッションでは、CLIと比べて従来のプラグインが想定する条件を満たさず、レコードがBigQueryに届きませんでした。具体的には、SessionEndイベントが発火しないため、SessionEndのみを契機としていた既存設定では集計処理自体が実行されませんでした。

また、user messageのcontentが配列形式で記録され、string形式しか想定していなかった既存パーサでは集計対象から外れていました。

おわりに

今回は、Claude Codeの利用状況を可視化するダッシュボードを作った取り組みを紹介しました。ダッシュボードを作ることで、スラッシュコマンドやMCP、サブエージェントなどの利用状況を定量的に確認できるようになりました。

最後まで読んでいただき、ありがとうございました。

参考文献

ブログ一覧へ戻る

お気軽にお問い合わせください

SREの設計・技術支援から、
SRE運用で使用する
ツールの導入など、
SRE全般についてご支援しています。

資料請求・お問い合わせ