はじめに
先日のIBM Bobサロンで習ったことを意識して、IBM Bobで以下のタスクを実践してみました。
InstanaエージェントとOTELコレクタでのメトリクス取得比較
意識したポイント
- TODOを丁寧にする。
- アウトプット重視でどんどんBobに依頼する。
- 出力ファイルが多くなるので、Bobにディレクトリ整理してもらって、前提のステップを理解しやすくした。
- ほとんど音声入力で進めたこと。
個人的に嬉しかったポイント
- 作業が長くなってきた時やコマンドの待ち時間が長い時に、Bobが現在状況を整理してくれる。例えば、TODOが一区切りしたらBobが現在の進捗をテキストベースのイメージ付きでサマリ作って教えてくれる。次のステップを最後に入れてくれるのもGood!
- ほとんど音声入力で済む。ある程度の誤字はコンテキストから正しく理解して業務遂行してくれる。
今回は、残念ながらOTELコレクタのところで詰まってしまったのですが、一旦メモ。
OTELコレクタでアプリケーションまで監視するためには、アプリケーション側での作り込みも必要で取れないということがわかりました。
以下、Bobによる検証結果です。
検証環境
- VM: RHEL 9.5 (IBM Cloud)
- アプリケーション: 3層アーキテクチャ(Nginx + Open Liberty + PostgreSQL)
- トラフィック: 639リクエスト(Instana Agent)
検証結果サマリー
1. Instana Agent ✅ 成功
収集できたデータ:
- ✅ アプリケーショントレース(639件、成功率73.4%)
- ✅ JVMメトリクス
- ✅ システムメトリクス
- ✅ ログ
2. OpenTelemetry Collector + Java Agent ❌ 失敗
問題: LoggingSpanExporterが使用され続け、OTLP exporterへの切り替えが困難
収集できなかったデータ:
- ❌ アプリケーショントレース
- ❌ アプリケーションメトリクス
- ❌ アプリケーションログ
3. OpenTelemetry Collector単体 ⚠️ 部分的成功
収集できたデータ:
- ✅ ホストメトリクス(CPU、メモリ、ディスク、ネットワーク)
収集できなかったデータ:
- ❌ アプリケーショントレース(理由: 自動計装機能なし)
なぜOpenTelemetryでメトリクスが取れなかったのか
アーキテクチャの違い
| 機能 | Instana Agent | OTel Collector |
|---|---|---|
| プロセス検出 | ✅ 自動 | ❌ なし |
| JVM計装 | ✅ 自動 | ❌ なし |
| データ収集 | ✅ 自動 | ⚠️ 受信のみ |
重要なポイント: OpenTelemetry Collectorはデータパイプラインであり、自動計装機能を持ちません。アプリケーション側で明示的にOpenTelemetryを統合する必要があります。
詰まったポイント
- Exporterの設定: 環境変数や設定ファイルが期待通りに動作しない
- データフローの誤解: Collectorはデータを受信するだけで、アプリケーション計装が別途必要
- ドキュメント不足: Instana固有の統合方法が不明確
比較表
機能比較
| 項目 | Instana Agent | OTel + Agent | OTel単体 |
|---|---|---|---|
| アプリケーショントレース | ✅ 自動 | ❌ 失敗 | ❌ 不可 |
| 設定の簡単さ | ✅ 非常に簡単 | ❌ 非常に複雑 | ✅ 簡単 |
| 本番環境での使用 | ✅ 推奨 | ❌ 非推奨 | ⚠️ インフラのみ |
データ収集結果
| データタイプ | Instana Agent | OTel + Agent | OTel単体 |
|---|---|---|---|
| HTTPトレース | ✅ 639件 | ❌ 0件 | ❌ 0件 |
| JVMメトリクス | ✅ 収集 | ❌ 0件 | ❌ 0件 |
| CPU使用率 | ✅ 収集 | ✅ 収集 | ✅ 収集 |
結論
主要な発見
- Instana Agent: 設定が簡単(1コマンド、5分)、自動計装、包括的なデータ収集
- OTel Collector: ホストメトリクス収集には適しているが、アプリケーション監視には追加計装が必要で設定が複雑
最終推奨
本番環境のアプリケーション監視には、Instana Agentを強く推奨します。
OpenTelemetry Collectorは、将来的な標準化のために検討する価値はありますが、現時点では実用的ではありません。
IBM Bobの活用
IBM Bobを使うことで、以下のメリットがありました:
- ✅ 作業の自動化(ドキュメント生成、進捗管理)
- ✅ 音声入力による効率化
- ✅ 長時間作業のサポート(自動サマリ)
- ✅ 包括的な調査結果の整理
一方で、複雑な設定の試行錯誤では人間の判断が必要な場面もありました。
IBM Bobは、定型的な作業や調査結果の整理には非常に有効ですが、複雑な問題解決には人間とBobの協働が重要だと感じました。
参考リンク
この記事が、Instana AgentとOpenTelemetry Collectorの選択に悩んでいる方の参考になれば幸いです!