概要
- OpenTelemetry(OTel)はベンダーロックインを避けるための観測性フレームワーク
- ベンダーSDKと比べ、導入や運用が難しく「未完成」感が拭えない現状
- プロジェクトの進行が遅い原因は、メンテナ不足・巨大なスコープ・安定性要件の三重苦
- コアとコントリブの分割、機能追加プロセスの複雑さも課題
- 他OSS(Envoy、Prometheus)との比較で、OTelはメンテナ分散が不十分
OpenTelemetryの現状と課題
- OpenTelemetry は、 ベンダーロックイン回避 を目指した 観測性フレームワーク
- ベンダーSDK は「インストールするだけ」「ダッシュボード自動生成」など、 導入が容易
- OTelは「 experimental」の多さや 複数の方法論 で、 学習コストが高い
- 観測性エコシステム の複雑さと、 各言語ごとの進捗差 が顕著
- Golang や Dotnet は進んでいるが、 Ruby や PHP は遅れ気味
- 自動インストルメンテーション は便利だが、手動への移行は 学習コストが急増
プロジェクト進行の遅さの要因
- 安定性ゲート (Binary Stability Gate)の存在
- 一度安定化した仕様は 変更困難 になるため、慎重な議論が続く
- メンテナ不足 と 巨大なスコープ
- 多数の言語・フレームワーク・バックエンドへの対応
- 主要メンテナがごく少数に集中
- コア(core) と コントリブ(contrib) の分割
- コア:API・SDK・OTLPエクスポータなど、 安定・ベンダーニュートラル
- コントリブ: 各種インストルメントライブラリ やエクスポータ、 進化が速く不安定
- コレクター(otel-collector)も同様の構造
- 独自ビルド が必要な場合が多く、 運用負担が大きい
新機能追加のプロセス
- OpenTelemetry Enhancement Proposal(OTEP) が起点
- 承認後、 Specificationディレクトリ に反映
- Semantic conventions で詳細設計・長期議論
- 各SDKでAPI実装、 一部2.0ブレイク変更 も発生
- contribパッケージ はAPI/SDKに追従しつつ、 独立したバージョン管理
- Collector/OTLP は独自の安定性ライフサイクルを持つ
メンテナ分散状況と他OSSとの比較
- Envoy や Prometheus は、 メンテナ分散が良好
- 複数のコアメンバーが活発に活動
- OTelの多くのSDK は、 1~2人に作業が集中
- 例:opentelemetry-phpは2人、opentelemetry-rubyは1人が大半を担当
- Golang や Dotnet は比較的分散
- メンテナの負担増加、 長期的な安定性維持の難しさ
- 趣味レベルでは対応困難、 企業支援必須
機能追加・仕様策定のボトルネック
- Semantic conventionsリポジトリ での議論が長期化
- 例:Gen-AIやGCP、Azure関連のPRは100日以上かかるケースも
- ただし SDK/API側への伝播は限定的
- Pythonではsemconv以外の要因で遅延するPRも多い
- 根本的な課題は「人手不足」+「安定性への過剰な配慮」
- 結果として「 プロジェクトの凍結」に近い状況
まとめと今後の展望
- OpenTelemetry は 理想的なベンダーニュートラル を目指すが、 実装・運用コストが高い
- メンテナの分散・増員、 安定性ポリシーの見直し が急務
- 趣味・副業レベル では支えきれない規模感
- 企業・コミュニティによる本格的な支援体制 の構築が必要
- 導入検討時は、チームのリソースや目的を慎重に見極めることが重要