## 概要
[[GitHub Copilot CLI]]で[[カスタムエージェント (GitHub Copilot CLI)|カスタムエージェント]]や[[スキル (GitHub Copilot)|スキル]]を使って仕組みを作っていると、期待通りに動かないことが多い。しかも、プログラミングのときほどデバッグや解析環境も整っていないことに加え、[[AI]]の動作は決定的でもない。そのため以下の問題が発生している。
- 修正した内容で以前より改善しているかの評価が困難
- 結果が改善/改悪したときに原因を調査するのが困難
そんなときに以下の記事を発見した。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" />
<span class="link-card-v2-site-name">Zenn</span>
</div>
<div class="link-card-v2-title">
GitHub Copilot CLI も OTel で観測する
</div>
<img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--13PgzE7---/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GitHub%2520Copilot%2520CLI%2520%25E3%2582%2582%2520OTel%2520%25E3%2581%25A7%25E8%25A6%25B3%25E6%25B8%25AC%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:Junya%2520Yamaguchi%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2MzZDNiN2I3OGYuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:Microsoft%2520%2528%25E6%259C%2589%25E5%25BF%2597%2529%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzgxNWZkZTM3NTkuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" />
<a href="https://zenn.dev/microsoft/articles/f439e06d07123e"></a>
</div>
[[OpenTelemetry]]と[[Langfuse]]を使って[[GitHub Copilot CLI]]のデバッグ精度を上げられそうなので試してみる。同時に[[OpenTelemetry]]のようなトレース周りの知識も補いたい。
### 環境
| 対象 | バージョン |
| ---------------------- | ------- |
| [[macOS]] | 15.7.4 |
| [[GitHub Copilot CLI]] | 1.0.24 |
| [[Langfuse]] | 3.167.4 |
## [[Langfuse]]
### インストール
まずは[[Langfuse]]をインストールしてみる。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
GitHub - langfuse/langfuse: 🪢 Open source LLM engineering platform: LLM Observability, metrics, evals, prompt management, playground, datasets. Integrates with OpenTelemetry, Langchain, OpenAI SDK, LiteLLM, and more. 🍊YC W23
</div>
<div class="link-card-v2-content">
🪢 Open source LLM engineering platform: LLM Observability, metrics, evals, prompt management, playground, datas ...
</div>
<img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/642497346/7753f7ee-40e3-4e93-84dc-fbf0487c7fb4" />
<a href="https://github.com/langfuse/langfuse"></a>
</div>
公式の[[Docker Compose]]を使った手順をそのまま使う。
```console
# Get a copy of the latest Langfuse repository
git clone https://github.com/langfuse/langfuse.git
cd langfuse
# Run the langfuse docker compose
docker compose up
```
### 初期設定
`localhost:3000` でログイン画面が表示されるので、`Sign up` をクリック。
1. `Name` `Email` `Password` を設定 (ローカルなので適当でOK。)
- `test`
- `Tel823#1ab`
2. `New Organization` をクリック
3. `Organization name` を入力して `Create`
- `tadashi-local`
4. `Next` を推して `Project name` を入力して `Create`
- `copilot-sample`
5. `Create new API key` をクリック
- `Secret Key` と `Public Key` を保管する
- `sk-lf-d2dc95ad-8c6b-4c0f-b162-029cd7f6b573`
- `pk-lf-25bd6906-b922-4558-9358-ad8e3ecb4a7a`
### 環境変数の設定
`~/.zshrc`
```bash
LF_PK="pk-lf-25bd6906-b922-4558-9358-ad8e3ecb4a7a"
LF_SK="sk-lf-d2dc95ad-8c6b-4c0f-b162-029cd7f6b573"
AUTH=$(echo -n "${LF_PK}:${LF_SK}" | base64)
```
以下は[[GitHub Copilot CLI]]のコマンド実行直前に。`${AUTH}` 生成後でないとサイレントにエラーになるので注意。
```bash
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:3000/api/public/otel"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic ${AUTH}"
```
## 動作確認
[[GitHub Copilot CLI]]のプロンプトを実行してみる。
最初は上手く動いてそうだったけど、Webを少しいじっているとフリーズする。。エラーも色々出ている。
## フリーズの理由
[[Redis]]のconnection timeoutになっているのが理由だったので少し調べた。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
bug: v3.163.0 self-hosted Redis/BullMQ regression after #12574 · Issue #12944 · langfuse/langfuse
</div>
<div class="link-card-v2-content">
Describe the bug We hit a self-hosted Redis/BullMQ regression immediately after upgrading Langfuse from v3.138.0 ...
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/f9d7d74942bc996004b30aa49213d33c7d4e8d259e83d9aa3ba46ac6a23abeaa/langfuse/langfuse/issues/12944" />
<a href="https://github.com/langfuse/langfuse/issues/12944"></a>
</div>
試しに[[Langfuse]]を3.162.0までバージョンダウンしてみたものの、起動や初期表示はできたがその後の動作は不安定で、しばしばconnection timeoutが発生する。
他の要因について詳しく調べてみた。
<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">
📰GitHub Copilot CLIとLangfuse接続時にRedis timeoutでWebやDockerのハングが頻発する件の調査
</div>
<div class="link-card-v2-content">GitHub Copilot CLIとself-hosted LangfuseをDocker Desktop上で併用した際のRedis timeoutやWeb固まり、Dockerハングの原因と対処を調査した記事である。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/report-colot.webp" />
<a data-href="📰GitHub Copilot CLIとLangfuse接続時にRedis timeoutでWebやDockerのハングが頻発する件の調査" class="internal-link"></a>
</div>
%%[[📰GitHub Copilot CLIとLangfuse接続時にRedis timeoutでWebやDockerのハングが頻発する件の調査]]%%
これを見る限り、最低要件である25.5GBのメモリに達していないのはかなり気になるところ。[[MacBook Pro M4 Pro]]のメモリは32GBであり、[[Docker Compose]]で動かしていたとなるとスペックは足りなそうである。(確認はしていない)
最小要件は以下に記載されている。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://langfuse.com/favicon-16x16.png" />
<span class="link-card-v2-site-name">langfuse.com</span>
</div>
<div class="link-card-v2-title">
Scaling Langfuse Deployments - Langfuse
</div>
<div class="link-card-v2-content">
Learn how to scale your self-hosted Langfuse deployment to handle more traffic and data.
</div>
<img class="link-card-v2-image" src="https://langfuse.com/api/og?title=Scaling+Langfuse+Deployments&description=Learn+how+to+scale+your+self-hosted+Langfuse+deployment+to+handle+more+traffic+and+data.§ion=Self-hosting" />
<a href="https://langfuse.com/self-hosting/configuration/scaling"></a>
</div>
## 結論
[[Langfuse]]による[[GitHub Copilot CLI]]のログ参照はオーバーキルすぎるのでやめる。
### 追記
[[Jaeger]]を使ってみることにした。
<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 JaegerでGitHub Copilot CLIのイベントを可視化してデバッグ環境を改善する
</div>
<div class="link-card-v2-content">OpenTelemetryとLangfuseでGitHub Copilot CLIのイベント可視化を試みたが環境要件や不安定さで断念し、JaegerをDockerとOTLP環境変数設定だけで起動し、トレース検索や詳細確認を行い、デバッグ用途に継続利用する判断をした</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 JaegerでGitHub Copilot CLIのイベントを可視化してデバッグ環境を改善する" class="internal-link"></a>
</div>
%%[[📜2026-04-12 JaegerでGitHub Copilot CLIのイベントを可視化してデバッグ環境を改善する]]%%