OBI の構成
OBI の構成方法を学びます。
このページの内容は古くなっている可能性があり、一部のリンクが無効になっている場合があります。
このページのより新しいバージョンが
英語版にあります。 このページが最後に更新されてからの英語ページの変更を確認するには、
GitHub compare ab6ef133..8c9a7a298
にアクセスし、詳細情報 ...
content/en/docs/zero-code/obi/_index.md を検索してください。
OpenTelemetry ライブラリは、一般的なプログラミング言語やフレームワーク向けのテレメトリー収集機能を提供します。 しかし、分散トレーシングの導入は複雑になる場合があります。 Go や Rust などの一部のコンパイル型言語では、コードにトレースポイントを手動で追加する必要があります。
OpenTelemetry eBPF 計装(OBI)は、アプリケーションのオブザーバビリティを簡単に開始するための自動計装ツールです。 OBI は eBPF を使用して、アプリケーションの実行可能ファイルと OS ネットワーク層を自動的に検査し、サポートされた Linux ワークロードのトレーススパン、Rate Errors Duration(RED)指標、ランタイム指標、アプリケーションおよびネットワークの関係をキャプチャします。 すべてのデータキャプチャは、アプリケーションのコードや構成を変更することなく行われます。
OBI は以下の機能を提供します。
OBI v0.15.2 は、未公開の v0.15.0 および v0.15.1 リリースを置き換えるものです。 v0.15.0 で意図された変更、BPF ベリファイアの修正、およびリリースアーティファクトのビルド修正が含まれています。 v0.14.0 からアップグレードする場合は v0.15.2 をインストールしてください。
target.info カウントを修正し、OTLP/HTTP JSON トレースエンコーディングを修正v0.15.2 アップグレードノートとリリースノートで、ダッシュボード、メトリクスカーディナリティ、およびトレース処理に影響する変更を確認してください。
上流のサンプルを確認するには、 NGINX ウォークスルーと Apache ウォークスルーを参照してください。
go.opentelemetry.io/obi/collector モジュールの v0.15.2 で Collector ディストリビューションをビルドしてください。
ルートモジュールにはレシーバーパッケージが含まれなくなりました。
更新されたモジュール置換とコンポーネントバージョンについては、Collector レシーバーのセットアップを参照してください。
Go エンベッダーは、削除された PrometheusConfig.Registry フィールドを Prometheus HTTP ポート設定に置き換える必要もあります。enabled.metrics: false は、そのプロトコルのスパンメトリクスとサービスグラフも抑制するようになりました。
トレースは引き続き独立して設定できます。
Config v1 の計装リストと導出されたメトリクスカバレッジが異なる場合は、移行レポートを確認してください。
メトリクス機能の選択を参照してください。server.address 値は Host ヘッダーのポートを省略します。
server.port と url.full はポートを保持します。
ポートを持つ Kubernetes Service ホストはサービスとネームスペースに解決されるようになり、サービスグラフ名が変わる可能性があります。rpc.method 値は先頭のスラッシュを省略します。
無効またはまだ読み取られていないパスはスパン名 grpc とメソッド _OTHER を使用します。
rpc.method_original はキャプチャされた生パスを保持します。
ONC RPC は CALL がキャプチャされた場合にのみ {program}/{procedure} メソッドを使用し、REPLY がある場合にのみレスポンスステータスを報告します。message は chat に、GraphQL サーバー名は GraphQL を省略し、S3/SQS の名前は S3./SQS. 接頭辞を使用します。
スパン名フィルターとスパンメトリクスクエリを更新してください。db.collection.name が含まれるようになりました。
RPC クライアントの持続時間に server.port が追加され、失敗した RPC サーバーの持続時間に error.type が追加されました。
メッセージングクライアントの持続時間に messaging.operation.type が追加されます。
クライアントとプロセスの持続時間にはサブスクリプション名が存在する場合に含まれます。
これらのデフォルトはメトリクス系列を分割する可能性があります。
メトリクス属性を参照してください。messaging.destination.subscription.name を使用し、スパン名からフィルターを省略します。
共有サブスクリプションは messaging.consumer.group.name も報告します。
AWS SNS スパンには rpc.system.name と rpc.method が含まれなくなりました。0.15.2 に更新されました。
テレメトリーレジストリは Weaver definition/2 を使用します。
スパンリファレンス ID に span. 接頭辞が付かなくなったため、古いカタログアンカーへのリンクを更新してください。v0.14.0 より古いリリースからアップグレードする場合は、以下の以前の変更も確認してください。 リリースノートには、追加のプロトコル固有の命名と属性の変更が記載されています。
error.type を含むようになりました。
Prometheus 系列に error_type ラベルが追加され、成功したリクエストでは空の値になります。
古い系列に依存するダッシュボードとアラートクエリを確認してください。host.id を各データポイントにコピーしなくなりました。
値はリソース属性と target_info に残ります。
OBI の Prometheus エクスポーターは変更されていません。
OTLP リソースを Prometheus ラベルにフラット化するコンシューマーは、host_id クエリを確認してください。service.peer.name、http.request.body.size、http.response.body.size、および obi.http.response.observed はオプトインのスパン属性になりました。
必要な場合は attributes.select.traces.include で選択してください。
サービスグラフプロセッサーには service.peer.name が必要な場合があります。traces_ctx_v1 マップはデフォルトでは設定されなくなりました。
外部トレースプロファイル相関と Go チャネルハンドオフフォールバックは、ebpf.populate_trace_context: true で復元できます。OTEL_RESOURCE_ATTRIBUTES より優先されるようになり、値はキーごとにマージされます。X-Found-Handling-Cluster からの db.namespace が含まれるようになりました。
既存のメトリクス系列がクラスターごとに分割される可能性があります。
AWS SQS スパンには aws.extended_request_id が含まれなくなりました。以下の図は、OBI の高レベルアーキテクチャと、eBPF 計装がテレメトリーパイプラインにどのように適合するかを示しています。
OBI は、以下の要件を満たす Linux 環境をサポートしています。
| 要件 | サポート対象 |
|---|---|
| CPU アーキテクチャ | amd64、arm64 |
| Linux カーネル | 5.8+、または必要な eBPF バックポートが適用された RHEL ファミリーのカーネルバージョン 4.18+ の Linux |
| カーネル機能 | BTF |
| 権限 | Root、または有効化された OBI 機能に必要な Linux ケーパビリティ |
OBI は以下のサポートされたリリース成果物を公開しています。
| 成果物 | サポートされるプラットフォーム |
|---|---|
obi バイナリアーカイブ | Linux amd64, Linux arm64 |
otel/ebpf-instrument コンテナイメージ | Linux amd64, Linux arm64 |
otel/opentelemetry-ebpf-k8s-cache コンテナイメージ | Linux amd64, Linux arm64 |
OBI は、要件を満たす環境であれば、スタンドアロン Linux ホスト、コンテナ、および Kubernetes にデプロイできます。
OBI は、Linux 以外のオペレーティングシステム、amd64 および arm64 以外の Linux アーキテクチャ、BTF のない Linux 環境、またはドキュメントに示されている 4.18+ の RHEL ファミリーという例外を除き、Linux 5.8 より古いカーネルバージョンをサポートしていません。
機能固有のサポートの詳細については、以下のガイドに記載されています。
OBI は、コード変更なしにアプリケーションとプロトコルのオブザーバビリティを提供しますが、すべてのシナリオで言語レベルの計装を置き換えるものではありません。 カスタムスパン、アプリケーション固有の属性、ビジネスイベント、または eBPF ベースの計装が自動的に取得できないその他のインプロセステレメトリーが必要な場合は、言語エージェントまたは手動による計装を使用してください。
OBI はネットワークとプロトコルのアクティビティを自動的にキャプチャできますが、eBPF 観測ポイントから見えないアプリケーション固有の詳細を常に復元できるわけではありません。
一部の機能には、コアプラットフォーム要件よりも追加の注意事項やサポート範囲の制限があります。 詳細については、分散トレースとエクスポートされた計装の機能固有のドキュメントを参照してください。
OBI が必要とするケーパビリティの包括的なリストについては、セキュリティ、権限、およびケーパビリティを参照してください。
OBI の構成方法を学びます。
OBI をポイントツーポイントのネットワークメトリクスの観察用に設定する
OBIのセットアップと実行方法を学びます。
OBI がエクスポートできる HTTP/gRPC メトリクスについて学びます。
OBI が必要とする権限とケーパビリティ
OBI の一般的な問題やエラーのトラブルシューティング
クライアント側から見たリクエスト全体の時間を計測する方法
OBI の分散トレースサポートについて学びます。
OBI を Cilium と並行して実行する際の互換性に関する注意事項
分散トレースのために、OBI が送信リクエストを受信した親リクエストにどのように関連付けるかを学びます。
計装される環境のサイズと複雑さを考慮した、デフォルトの OBI インストールで生成されるメトリクスのカーディナリティの算出方法の概要。
より迅速なデバッグとトラブルシューティングのために、OBI がアプリケーションログを分散トレースとどのように相関付けるかを学びます。
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!