はじめに
みなさんはClaude Codeを使っていますか?私はめちゃくちゃ使いまくっています。($200/月の契約で既に$620相当)
この利用状況はccusageというツールで集計されたものです。いつもありがとうございます。
さて、この利用状況の集計にあたっては、本日のClaude Code Deep Dive 〜t-wada, mizchiとAgentic Codingの「今」を眺める 〜のイベントで解説があった~/.claude/projects
に格納された会話ログのデータが元データになっています。
会話ログを使うと、人間とAIのやり取りを詳細に確認することができます。データ形式もJSON LinesというTROCCOで扱いやすい形式になっているので、DWHに転送して分析したいですね。ということで試してみました。
ちなみになんかできそうだし、やってみたら面白そうというだけで試してみたので、実用的かどうかは別の話です。
BigQueryにデータを転送すると、こんな感じで好き勝手にクエリが打てます!最高!
前提
- Windows 11環境
- 私はDevelopment Containersを使っており、ログデータを一元化するには一工夫必要なのですが、その点については別で書くかもしれません
- TROCCO Professionalプラン
- Self-Hosted Runnerの利用のため~~(自社サービスなので好き勝手使えます)~~
設定方法
全体像は以下の通りです。
- ログファイルを保存しているディレクトリをFTPサーバとしてPC内部に公開
- Dockerコンテナとして設置されたSelf-Hosted Runnerでデータを取得
- 取得したデータをBigQueryに転送
TROCCOのSelf-Hosted Runnerの準備をする
まずは、TROCCOのSelf-Hosted Runnerの準備をします。設定方法については過去にまとめた記事をご確認ください。
なお、正式版のリリースにあたり、デフォルトでプレビューデータが表示されないように仕様変更されています。プレビューデータを確認したい場合は、-e TROCCO_PREVIEW_SEND="true"
の設定を追加してください。
WindowsのFTPサーバを設定する
Windowsには、デフォルトでFTPサーバとして利用できるためのアプリケーションが内蔵されています。設定方法については以下の記事を参照してください。
この設定を行うことで、指定したディレクトリをFTPサーバとして公開し、指定したプライベートIPアドレスとポート番号で、Windowsに設定されたユーザ/パスワードをもとにアクセスができるようになります。
TROCCOの接続情報/転送設定を作成する
先ほど設定したプライベートIPアドレス、ポート番号、ユーザ、パスワードで接続情報を作成します。
続いて、転送設定を作成します。Self-Hosted Runner Clusterの部分で事前に設定したものを選択します。ちなみに、FTPの方の接続確認はSelf-Hosted RunnerではなくSaaSのTROCCOで動くので、確認ができないことに注意してください。
転送先BigQueryの設定は省略します。
これでプレビュー画面に移ると・・・
データが取得でき、ちゃんとプレビューが表示されています!
そして当然ですが、データ転送も成功します!!やりました!!!
おわりに
ということで、Claude Codeのデータを使ってローカルPCからDWHへのデータ転送を実現しました。Self-Hosted Runnerを利用することで、外部からのアクセスを許可することなくセキュアにログデータを使いやすくしています。
え、ファイルでアップロードすればいいのではって・・・!?!?それは言わないでおいてください(笑)