はじめに
OpenShift4.16のWhat's Newにも登場したTempoを使って、分散トレーシングを実現したいと思います。
前提
環境情報
- OpenShift: 4.15.30
- Tempo Operator(Red Hat): 0.13.0-1+0.1730817419.p
- 今回はTempoMonolithicで構成する
- Object Storage(s3/gcs/blob storage...)が構成済み
- 今回は構成済みのIBM CloudのCloud Object Storage(ICOS)を使用する
※ICOSは本手順でS3互換として利用可能な為、ドキュメント内S3の手順に読み替えて実施する
- 今回は構成済みのIBM CloudのCloud Object Storage(ICOS)を使用する
今回の内容
- Tempo Operatorのインストール 👈ここ
- Tempo Monolithic Instanceの作成 👈ここ
- サンプルアプリケーションの作成
- 分散トレーシングの構成
ドキュメント
- Red Hat Documentation
- ホーム > 製品 > OpenShift Container Platform > 4.15 > 分散トレーシング > 第3章 distributed tracing platform (Tempo)
参考リンク
-
OpenShift Service Mesh 3.x + Tempo Operator + Red Hat build of OpenTelemetryで分散トレーシングの設定をしてみた
- 実施手順3「3. 分散トレースデータ収集(OpenTelemetry)のインストール」から分散トレーシングの構成までの手順を参照できます
手順
1. Tempo Operatorのインストール
- OpenShiftコンソールにログイン
- Operator > OperatorHubに移動し
Tempo Operator
を検索、Red Hatが提供するTempo Operatorを選択する
- 「インストール」を押下する
- 以下の設定で「インストール」を押下する
- 更新チャネル:
stable
- バージョン:
0.13.0-1+0.1730817419.p
- インストールモード:
クラスターのすべてのnamespace(デフォルト)
- インストール済みのnamespace:
Operator推奨のnamespace: openshift-tempo-operator
- このnamespaceでOperatorで推奨されるクラスターモニタリングを有効化する:
未チェック
- このnamespaceでOperatorで推奨されるクラスターモニタリングを有効化する:
- 更新の承認:
手動
- 更新チャネル:
- 承認アクションが表示されたら「承認」を押下する
※以下作成されるリソースの一覧
- しばらく経つとTempo Operatorのインストール処理が完了し、表示された「Operatorの表示」を押下する
- Tempo Operatorがインストールされていることを確認する
2. Tempo Monolithic Instanceの作成
- ホーム > プロジェクトから「プロジェクトの作成」を押下する
- Tempo Monolithic Instance用のプロジェクトを作成する
プロジェクト名「sample-tempo-monolithic」(任意の名前)
- トレース情報の保存に使用されるObject Storage接続情報を定義する
以下のマニフェストファイル内容でリソースを作成
apiVersion: v1
kind: Secret
metadata:
name: sample-tempo-monolithic-cos-secret(任意の名前)
namespace: sample-tempo-monolithic(上で作成したプロジェクト名)
type: Opaque
stringData:
endpoint: http://<Cloud Object StorageバケットのPublicEndpoint>
bucket: <Cloud Object Storageバケット名>
access_key_id: <Cloud Object StorageインスタンスのアクセスキーID>
access_key_secret: <Cloud Object Storageインスタンスのアクセスキーシークレット>
- Operator > インストール済みのOperator > Tempo Operatorを選択し、Tempo Monolithicタブから「TempoMonolithicの作成」を押下する
以下のマニフェストファイル内容でリソースを作成
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoMonolithic
metadata:
name: sample(任意の名前)
namespace: sample-tempo-monolithic(上で作成したプロジェクト名)
spec:
storage:
traces:
backend: s3
size: 10Gi
s3:
secret: sample-tempo-monolithic-cos-secret(上で作成したSecret名)
jaegerui:
enabled: true
route:
enabled: true
- ネットワーク > Routesを選択し、上の作業で作成されたRouteからURLを押下する
- Jaeger UIが使用できるようになっていることが確認できる
さいごに
次回はサンプルアプリケーションを作成して、分散トレーシング情報を取得できるよう構成を行いたいと思います。