Red Hat ビルドの OpenTelemetry への移行
分散トレースのための Jaeger から OpenTelemetry への移行
概要
第1章 移行 リンクのコピーリンクがクリップボードにコピーされました!
非推奨の Red Hat OpenShift 分散トレースプラットフォーム(Jaeger) 3.5 は、Red Hat がサポートする Red Hat OpenShift 分散トレースプラットフォーム(Jaeger)の最後のリリースでした。
非推奨の Red Hat OpenShift 分散トレースプラットフォーム(Jaeger) 3.5 のサポートおよびメンテナンスはすべて 2025 年 11 月 3 日に終了しました。
それでも Red Hat OpenShift 分散トレースプラットフォーム(Jaeger)を使用する場合は、分散トレースコレクションおよびストレージ用に Red Hat build of OpenTelemetry Operator および Tempo Operator に移行する必要があります。詳細は、Red Hat build of OpenTelemetry ドキュメントのMigrating"、Red Hat build of OpenTelemetry ドキュメントの Installing、および Red Hat OpenShift 分散トレースプラットフォーム(Tempo)ドキュメントの「インストール」を参照してください。
詳細は、Red Hat ナレッジベースソリューション Jaeger Deprecation and Removal in OpenShift を参照してください。
アプリケーションに Red Hat OpenShift distributed tracing platform (Jaeger) をすでに使用している場合は、OpenTelemetry オープンソースプロジェクトに基づく Red Hat build of OpenTelemetry に移行できます。
Red Hat build of OpenTelemetry は、分散システムの可観測性実現に役立つ一連の API、ライブラリー、エージェント、および計装を提供します。Red Hat build of OpenTelemetry に含まれる OpenTelemetry Collector は、Jaeger プロトコルを取り込めるため、アプリケーションの SDK を変更する必要はありません。
distributed tracing platform (Jaeger) から Red Hat build of OpenTelemetry に移行するには、トレースをシームレスにレポートするように OpenTelemetry Collector とアプリケーションを設定する必要があります。サイドカーおよびサイドカーレスデプロイメントを移行できます。
1.1. サイドカーを使った移行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of OpenTelemetry Operator は、デプロイメントワークロードへのサイドカー注入をサポートしているため、distributed tracing platform (Jaeger) サイドカーから Red Hat build of OpenTelemetry サイドカーに移行できます。
前提条件
- Red Hat OpenShift distributed tracing platform (Jaeger) がクラスターで使用されている。
- Red Hat build of OpenTelemetry がインストールされている。
手順
OpenTelemetry Collector をサイドカーとして設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このエンドポイントは、
<example>Tempo Operator を使用してデプロイされた TempoStack インスタンスのゲートウェイを指します。
アプリケーションを実行するためのサービスアカウントを作成します。
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector-sidecar
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector-sidecarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一部のプロセッサーで必要な権限のためのクラスターロールを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
resourcedetectionprocessorには、インフラストラクチャーとインフラストラクチャー/ステータスに対する権限が必要です。
ClusterRoleBindingを作成して、サービスアカウントの権限を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenTelemetry Collector をサイドカーとしてデプロイします。
-
Deploymentオブジェクトから"sidecar.jaegertracing.io/inject": "true"アノテーションを削除することで、注入された Jaeger Agent をアプリケーションから削除します。 -
sidecar.opentelemetry.io/inject: "true"アノテーションをDeploymentオブジェクトの.spec.template.metadata.annotationsフィールドに追加して、OpenTelemetry サイドカーの自動注入を有効にします。 - 作成したサービスアカウントをアプリケーションのデプロイメントに使用します。そうすることで、プロセッサーは正しい情報を取得してトレースに追加できます。
1.2. サイドカーなしで移行 リンクのコピーリンクがクリップボードにコピーされました!
サイドカーをデプロイせずに、distributed tracing platform (Jaeger) から Red Hat build of OpenTelemetry に移行できます。
前提条件
- Red Hat OpenShift distributed tracing platform (Jaeger) がクラスターで使用されている。
- Red Hat build of OpenTelemetry がインストールされている。
手順
- OpenTelemetry Collector デプロイメントを設定します。
OpenTelemetry Collector のデプロイ先となるプロジェクトを作成します。
apiVersion: project.openshift.io/v1 kind: Project metadata: name: observability
apiVersion: project.openshift.io/v1 kind: Project metadata: name: observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenTelemetry Collector インスタンスを実行するためのサービスアカウントを作成します。
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector-deployment namespace: observability
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector-deployment namespace: observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロセッサーに必要な権限を設定するためのクラスターロールを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRoleBinding を作成して、サービスアカウントの権限を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenTelemetry Collector インスタンスを作成します。
注記この Collector は、トレースを TempoStack インスタンスにエクスポートします。Red Hat Tempo Operator を使用して TempoStack インスタンスを作成し、正しいエンドポイントを配置する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - トレースエンドポイントを OpenTelemetry Operator に指定します。
トレースをアプリケーションから Jaeger に直接エクスポートする場合は、API エンドポイントを Jaeger エンドポイントから OpenTelemetry Collector エンドポイントに変更します。
Golang を使用する
jaegerexporterでトレースをエクスポートする場合の例exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(url)))
exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(url)))1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- URL は OpenTelemetry Collector API エンドポイントを指します。