# 背景 [[OpenTelemetry]]と[[Langfuse]]を使って同様のことをやろうとしたが、スペック的な問題と、要件に対するオーバーキル感が凄かったので諦めた。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📜2026-04-12 OpenTelemetryとLangfuseでGitHub Copilot CLIのデバッグ環境を改善する </div> <div class="link-card-v2-content">GitHub Copilot CLIのカスタムエージェントとスキルの挙動改善を目的に、OpenTelemetryとLangfuseをDocker Composeで導入し、OTLP設定で接続したが、Redisのconnection timeoutやWebフリーズが頻発し、Langfuseのメモリ要件も高かったため、最終的にLangfuseによるログ参照を断念した</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" /> <a data-href="📜2026-04-12 OpenTelemetryとLangfuseでGitHub Copilot CLIのデバッグ環境を改善する" class="internal-link"></a> </div> %%[[📜2026-04-12 OpenTelemetryとLangfuseでGitHub Copilot CLIのデバッグ環境を改善する]]%% 代わりに[[Jaeger]]を使って実現できるかを検討する。 ## 起動 [[Jaeger]]はインストールをする必要すらない。 ```console docker run --rm --name jaeger \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ jaegertracing/jaeger:latest ``` ## [[GitHub Copilot CLI]]の設定 [[GitHub Copilot CLI]]実行直前に環境変数を設定する。 ```bash export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true ``` ## 実行/確認 `hello` とプロンプトを実行してみる。 http://localhost:16686/ にアクセスすると画面が表示されるので、`Service` から `github-copilot-cli` を選択。 ![[2026-04-12-18-18-28.avif]] `Find Traces` を押す。 ![[2026-04-12-18-18-56.avif]] 測定できてそう。[[Langfuse]]と比べてメチャクチャ簡単だった。 ![[2026-04-12-18-19-11.avif]] ## もう少し詳しく見てみる `hello` では味気ないので少しちゃんとした仕事をお願いしてみる。 ``` Window Hintsを実行してHintが表示されるまでの間に一瞬のラグがあり、画面のFBを得る前に操作をするとそのキーを受け付けないことがある。occlusion.previewはfalseにしているが、それ以外の部分でどこにコストがかかっているのか気になる。 - パフォーマンス改善で対応できるならそうしたい - パフォーマンス改善で対応できない場合はキーだけ受け付けてHintが確定したあとに処理を実行できないか検討したい 上記対応をするにあたり調査をしてほしい。 ``` 一通りの情報は追えそう。検索もできるので。 ![[2026-04-12-18-55-57.avif]] ## 結論 [[Jaeger]]をしばらく使ってみることにした。以下が決め手。 - `docker` コマンド一発で起動できる気軽さ - 設定も環境変数だけでお手軽 - Webもサクサクで見やすい - 必要最低限で無駄がない感じが今の用途にあっている