# OBI OBI(OpenTelemetry eBPF Instrumentation)は、[[eBPF]] プローブを通じてアプリケーションコード変更なしにトレーススパンと RED メトリクスを収集する [[OpenTelemetry]] サブプロジェクトである。Grafana [[Grafana Beyla|Beyla]] の後継として CNCF に移管された。 ## 技術特性 - **[[ゼロコード計装]]**: カーネル/ネットワーク層の eBPF フックでアプリケーション実行ファイルと OS ネットワーキング層を検査し、ソースコード修正なしにテレメトリを捕捉する - **言語対応**: Java(JDK 8+)、.NET、Go、Python、Ruby、Node.js、C、C++、Rust の 9 言語 - **プロトコル対応**: HTTP/S、gRPC、gRPC-Web、JSON-RPC、MQTT、NATS、AMQP 1.0、Memcached - **データベース対応**: PostgreSQL、MySQL、MSSQL、MongoDB、Redis、Couchbase - **GenAI 対応**: OpenAI、Anthropic Claude、Google Gemini、AWS Bedrock、Qwen - **デプロイ**: Kubernetes コンテナ(`otel/ebpf-instrument`)、バイナリアーカイブ、スタンドアロンホスト ## 主要機能 - 分散トレーススパンの捕捉・送信 - JSON ログへのトレースコンテキスト付与 - TLS/SSL トランザクションの復号なし可視化 - 自動トレースコンテキスト伝搬 - HTTP ヘッダエンリッチメント(v0.7.0〜): スパンにテナント ID 等のリクエストコンテキストを設定変更のみで付与(Source: [[@2026__OTelBlog__OBI HTTP Header Enrichment]]) ## サーバーレスでの応用(statelessLambda tracing) `Observability Engineering`(2nd Edition)第7章は、AWS Lambda のようなリソース制約の強いサーバーレス環境向けに、OBI が体現する「eBPF/拡張レイヤーでステートを外出しする」設計思想の延長として、statelessLambda tracing という戦略を紹介する。関数側ではステートレスな SDK が生イベントを軽量に送出するだけにとどめ、拡張レイヤー内のステートフルな SDK と OpenTelemetry Collector(カスタムプロセッサ)側でそれらをスパンへ組み立てる。これにより関数ランタイム内でのコンテキスト管理・状態保持の必要性を減らせるが、その分 Collector 側の実装が複雑になるというトレードオフを伴う。同章は OBI 自体についても、既存の計装努力を置き換えるのではなく補強・ギャップ埋めするアクセラレータとして理解すべきだと位置づける。(Source: [[@2026__OReilly__Observability Engineering 2E - Chapter 7 Instrumenting Your Code with OpenTelemetry]]) ## 関連 - ソース: [[@2026__OTelDocs__OBI - OpenTelemetry eBPF Instrumentation]] / [[@2026__OTelBlog__OBI HTTP Header Enrichment]] / [[@2026__eunomia.dev__eBPF × AI-LLMs - The Convergence of System Observability and AI]] / [[@2026__OReilly__Observability Engineering 2E - Chapter 7 Instrumenting Your Code with OpenTelemetry]] - 概念: [[ゼロコード計装]] / [[eBPF]] / [[テレメトリ]] / [[オブザーバビリティ]] - エンティティ: [[OpenTelemetry]] / [[CNCF]] / [[AWS Lambda]]