# 背景
[[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もサクサクで見やすい
- 必要最低限で無駄がない感じが今の用途にあっている