This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第4章 OpenTelemetry インストルメンテーション注入の設定とデプロイ
OpenTelemetry インストルメンテーション注入はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Red Hat build of OpenTelemetry Operatorは、インストルメンテーションの設定を定義するカスタムリソース定義 (CRD) ファイルを使用します。
4.1. OpenTelemetry インストルメンテーション設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of OpenTelemetry では、OpenTelemetry 自動インストルメンテーションライブラリーをワークロードに注入して設定できます。現在、プロジェクトは、Go、Java、Node.js、Python、.NET、および Apache HTTP Server (httpd
) からのインストルメンテーションライブラリーの注入をサポートしています。
OpenTelemetry の自動インストルメンテーションとは、コードを手動で変更することなく、フレームワークがアプリケーションを自動的にインストルメンテーションする機能を指します。これにより、開発者と管理者は、最小限の労力と既存のコードベースへの変更で、アプリケーションに可観測性を導入できるようになります。
Red Hat build of OpenTelemetry Operatorは、インストルメンテーションライブラリーの注入メカニズムのみをサポートしますが、インストルメンテーションライブラリーやアップストリームイメージはサポートしません。お客様は独自のインストルメンテーションイメージをビルドすることも、コミュニティーイメージを使用することもできます。
4.1.1. インストルメンテーションオプション リンクのコピーリンクがクリップボードにコピーされました!
インストルメンテーションオプションは、OpenTelemetryCollector
カスタムリソースで指定されます。
OpenTelemetryCollector
カスタムリソースファイルのサンプル
パラメーター | 説明 | 値 |
---|---|---|
env
| すべてのインストルメンテーションにわたって定義する共通の環境変数。 | |
exporter
| エクスポーターの設定。 | |
propagators
| プロパゲーターは、プロセス間のコンテキスト伝播設定を定義します。 |
|
resource
| リソース属性の設定。 | |
sampler
| サンプリング設定。 | |
apacheHttpd
| Apache HTTP Server インストルメンテーションの設定。 | |
dotnet
| .NET インストルメンテーションの設定。 | |
go
| Go インストルメンテーションの設定。 | |
java
| Java インストルメンテーションの設定。 | |
nodejs
| Node.js インストルメンテーションの設定。 | |
python
| Python インストルメンテーションの設定。 |
4.1.2. Service Mesh でのインストルメンテーション CR の使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service Mesh でインストルメンテーションカスタムリソース (CR) を使用する場合は、b3multi
プロパゲーターを使用する必要があります。
4.1.2.1. Apache HTTP Server の自動インストルメンテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 | デフォルト |
---|---|---|
attrs
| Apache HTTP Server に固有の属性。 | |
configPath
| Apache HTTP Server 設定の場所。 | /usr/local/apache2/conf |
env
| Apache HTTP Server に固有の環境変数。 | |
image
| Apache SDK と自動インストルメンテーションを備えたコンテナーイメージ。 | |
resourceRequirements
| コンピュートリソースの要件。 | |
version
| Apache HTTP Server のバージョン。 | 2.4 |
注入を有効化するための PodSpec
アノテーション
instrumentation.opentelemetry.io/inject-apache-httpd: "true"
instrumentation.opentelemetry.io/inject-apache-httpd: "true"
4.1.2.2. .NET 自動インストルメンテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
env
| .NET に固有の環境変数。 |
image
| .NET SDK と自動インストルメンテーションを備えたコンテナーイメージ。 |
resourceRequirements
| コンピュートリソースの要件。 |
.NET 自動インストルメンテーションの場合、エクスポータのエンドポイントが 4317
に設定されている場合は、必須の OTEL_EXPORTER_OTLP_ENDPOINT
環境変数を設定する必要があります。.NET 自動インストルメンテーションはデフォルトで http/proto
を使用し、テレメトリーデータは 4318
ポートに設定する必要があります。
注入を有効化するための PodSpec
アノテーション
instrumentation.opentelemetry.io/inject-dotnet: "true"
instrumentation.opentelemetry.io/inject-dotnet: "true"
4.1.2.3. Go 自動インストルメンテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
env
| Go に固有の環境変数。 |
image
| Go SDK と自動インストルメンテーションを備えたコンテナーイメージ。 |
resourceRequirements
| コンピュートリソースの要件。 |
注入を有効化するための PodSpec
アノテーション
instrumentation.opentelemetry.io/inject-go: "true"
instrumentation.opentelemetry.io/inject-go: "true"
OpenShift クラスターの Go 自動インストルメンテーションに必要な追加の権限
OpenShift クラスターで Go 自動インストルメンテーションの権限を適用するための CLI コマンドは次のとおりです。
oc adm policy add-scc-to-user otel-go-instrumentation-scc -z <service_account>
$ oc adm policy add-scc-to-user otel-go-instrumentation-scc -z <service_account>
4.1.2.4. Java 自動インストルメンテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
env
| Java に固有の環境変数。 |
image
| Java SDK と自動インストルメンテーションを備えたコンテナーイメージ。 |
resourceRequirements
| コンピュートリソースの要件。 |
注入を有効化するための PodSpec
アノテーション
instrumentation.opentelemetry.io/inject-java: "true"
instrumentation.opentelemetry.io/inject-java: "true"
4.1.2.5. Node.js 自動インストルメンテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
env
| Node.js に固有の環境変数。 |
image
| Node.js SDK と自動インストルメンテーションを備えたコンテナーイメージ。 |
resourceRequirements
| コンピュートリソースの要件。 |
注入を有効化するための PodSpec
アノテーション
instrumentation.opentelemetry.io/inject-nodejs: "true" instrumentation.opentelemetry.io/otel-go-auto-target-exe: "/path/to/container/executable"
instrumentation.opentelemetry.io/inject-nodejs: "true"
instrumentation.opentelemetry.io/otel-go-auto-target-exe: "/path/to/container/executable"
instrumentation.opentelemetry.io/otel-go-auto-target-exe
アノテーションは、必要な OTEL_GO_AUTO_TARGET_EXE
環境変数の値を設定します。
4.1.2.6. Python 自動インストルメンテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
env
| Python に固有の環境変数。 |
image
| Python SDK と自動インストルメンテーションを備えたコンテナーイメージ。 |
resourceRequirements
| コンピュートリソースの要件。 |
Python 自動インストルメンテーションの場合、エクスポーターのエンドポイントが 4317
に設定されている場合は、OTEL_EXPORTER_OTLP_ENDPOINT
環境変数を設定する必要があります。Python 自動インストルメンテーションはデフォルトで http/proto
を使用し、テレメトリーデータは 4318
ポートに設定する必要があります。
注入を有効化するための PodSpec
アノテーション
instrumentation.opentelemetry.io/inject-python: "true"
instrumentation.opentelemetry.io/inject-python: "true"
4.1.2.7. OpenTelemetry SDK 変数の設定 リンクのコピーリンクがクリップボードにコピーされました!
Pod 内の OpenTelemetry SDK 変数は、次のアノテーションを使用して設定できます。
instrumentation.opentelemetry.io/inject-sdk: "true"
instrumentation.opentelemetry.io/inject-sdk: "true"
すべてのアノテーションは、以下の値を受け入れることに注意してください。
true
-
namespace からインストル
Instrumentation
リソースを注入します。 false
- インストルメンテーションはいっさい注入しません。
instrumentation-name
- 現在の namespace から注入するインストルメンテーションリソースの名前。
other-namespace/instrumentation-name
- 別の namespace から注入するインストルメンテーションリソースの名前。
4.1.2.8. マルチコンテナー Pod リンクのコピーリンクがクリップボードにコピーされました!
インストルメンテーションは、Pod の仕様に従ってデフォルトで利用可能な最初のコンテナー上で実行されます。場合によっては、注入のターゲットコンテナーを指定することもできます。
Pod のアノテーション
instrumentation.opentelemetry.io/container-names: "<container_1>,<container_2>"
instrumentation.opentelemetry.io/container-names: "<container_1>,<container_2>"
Go 自動インストルメンテーションは、複数コンテナーの自動インストルメンテーション注入をサポートしていません。