分散トレーシング
OpenShift Container Platform での分散トレーシングの設定と使用
概要
第1章 Red Hat OpenShift Distributed Tracing Platform 3.7 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
1.1. このリリースについて リンクのコピーリンクがクリップボードにコピーされました!
Distributed Tracing Platform 3.7 は、Tempo Operator 0.18.0 を通じて提供され、オープンソースの Grafana Tempo 2.8.2 に基づいています。
リンクされた Jira チケットの一部は、Red Hat の認証情報でのみアクセスできます。
サポートされている機能のみが文書化されています。文書化されていない機能は現在サポートされていません。機能に関してサポートが必要な場合は、Red Hat のサポートにお問い合わせください。
1.2. 新機能および機能拡張 リンクのコピーリンクがクリップボードにコピーされました!
- API アクセスを制限するネットワークポリシー
- この更新により、Tempo Operator が、自身が使用する API へのアクセスを制限するためのネットワークポリシーを作成するようになりました。
1.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- Tempo クエリーフロントエンドがトレース JSON の取得に失敗する
Jaeger UI で、Trace をクリックしてページを更新するか、Tempo クエリーフロントエンドから Trace → Trace Timeline → Trace JSON にアクセスすると、Tempo クエリー Pod が EOF エラーで失敗する可能性があります。
この問題を回避するには、分散トレーシング UI プラグインを使用してトレースを表示します。
1.4. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、次の CVE が修正されました。
1.5. サポートの利用 リンクのコピーリンクがクリップボードにコピーされました!
このドキュメントで説明されている手順、または OpenShift Container Platform 全般で問題が発生した場合は、Red Hat カスタマーポータル にアクセスしてください。
カスタマーポータルでは、次のことができます。
- Red Hat 製品に関するアーティクルおよびソリューションを対象とした Red Hat ナレッジベースの検索またはブラウズ。
- Red Hat サポートに対するサポートケースの送信。
- その他の製品ドキュメントへのアクセス。
クラスターの問題を特定するには、OpenShift Cluster Manager で Insights を使用できます。Insights により、問題の詳細と、利用可能な場合は問題の解決方法に関する情報が提供されます。
このドキュメントを改善するための提案がある場合、またはエラーを見つけた場合は、最も関連性の高いドキュメントコンポーネントについて Jira 課題 を送信してください。セクション名や OpenShift Container Platform バージョンなどの具体的な情報を提供してください。
第2章 Distributed Tracing Platform について リンクのコピーリンクがクリップボードにコピーされました!
2.1. 分散トレーシングの主要概念 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーがアプリケーションでアクションを実行するたびに、応答を生成するために多数の異なるサービスに参加を要求する可能性のあるアーキテクチャーによって要求が実行されます。Red Hat OpenShift Distributed Tracing Platform を使用すると、分散トレーシングを実行し、アプリケーションを構成するさまざまなマイクロサービスによる要求のパスを記録できます。
分散トレーシング は、さまざまな作業単位 (通常は別々のプロセスまたはホストで実行されるもの) に関する情報を結び付けて、分散トランザクション内の一連のイベント全体を把握するために使用される手法です。分散トレーシングを使用すると、開発者は大規模なマイクロサービスアーキテクチャー内の呼び出しフローを可視化できます。これは、シリアル化、並行処理、およびレイテンシーのソースに関する理解にも役立ちます。
Red Hat OpenShift Distributed Tracing Platform は、マイクロサービスのスタック全体における個々の要求の実行を記録し、トレースとして表示します。トレース とは、システムにおけるデータ/実行パスです。エンドツーエンドのトレースは、1 つ以上のスパンで構成されます。
スパン は、Red Hat OpenShift Distributed Tracing Platform における論理的な作業単位を表します。これには、操作名、操作の開始時刻、期間、および場合によってはタグとログが含まれます。スパンは因果関係をモデル化するためにネスト化され、順序付けられます。
サービス所有者は、分散トレーシングを使用してサービスを計装し、サービスアーキテクチャーに関する分析情報を収集できます。Red Hat OpenShift Distributed Tracing Platform を使用すると、最新のクラウドネイティブのマイクロサービスベースのアプリケーションにおけるコンポーネント間の相互作用の監視、ネットワークプロファイリング、トラブルシューティングを行うことができます。
Distributed Tracing Platform を使用すると、次の機能を実行できます。
- 分散トランザクションの監視
- パフォーマンスとレイテンシーの最適化
- 根本原因分析の実行
Distributed Tracing Platform を OpenShift Container Platform の他の関連コンポーネントと組み合わせることができます。
- TempoStack インスタンスにトレースを転送するための Red Hat build of OpenTelemetry
- Cluster Observability Operator (COO) の分散トレーシング UI プラグイン
2.2. Red Hat OpenShift Distributed Tracing Platform の機能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Distributed Tracing Platform は、次の機能を提供します。
- Kiali との統合 - 適切に設定すると、Kiali コンソールから Distributed Tracing Platform データを表示できます。
- 高いスケーラビリティー - Distributed Tracing Platform のバックエンドは、単一障害点がなく、ビジネスニーズに合わせて拡張できるように設計されています。
- 分散コンテキスト伝播 - さまざまなコンポーネントのデータを相互に接続して、完全なエンドツーエンドのトレースを作成できます。
- Zipkin との下位互換性 - Red Hat OpenShift Distributed Tracing Platform には、Zipkin のドロップインリプレースメントとして使用できる API があります。ただし、Red Hat はこのリリースでは Zipkin との互換性をサポートしていません。
2.3. Red Hat OpenShift Distributed Tracing Platform のアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Distributed Tracing Platform は、トレースデータを収集、保存、表示するために連携して動作する複数のコンポーネントで構成されています。
Red Hat OpenShift Distributed Tracing Platform: このコンポーネントは、オープンソースの Grafana Tempo プロジェクト に基づいています。
- Gateway: ゲートウェイは、認証、認可、およびディストリビューターまたはクエリーフロントエンドサービスへのリクエストの転送を処理します。
-
Distributor: ディストリビューターは、Jaeger、OpenTelemetry、Zipkin などの複数の形式のスパンを受け入れます。
traceIDをハッシュ化し、分散コンシステントハッシュリングを使用して、スパンを Ingester にルーティングします。 - Ingester: Ingester はトレースをブロックにバッチ化し、ブルームフィルターとインデックスを作成してすべてバックエンドにフラッシュします。
- Query Frontend - Query Frontend は、受信クエリーの検索スペースを分割し、クエリーをクエリー実行者に送信します。Query Frontend のデプロイメントでは、Tempo Query サイドカーを介して Jaeger UI が公開されます。
- Querier: Querier は、Ingester またはバックエンドストレージで要求されたトレース ID を検索します。パラメーターに応じて、Ingester にクエリーを実行し、バックエンドから Bloom インデックスを取得して、オブジェクトストレージ内のブロックを検索できます。
- Compactor: Compactor は、ブロックをバックエンドストレージとの間でストリーミングして、ブロックの総数を減らします。
Red Hat build of OpenTelemetry - このコンポーネントは、オープンソースの OpenTelemetry プロジェクト に基づいています。
- OpenTelemetry Collector: OpenTelemetry Collector は、テレメトリーデータを受信、処理、エクスポートするためのベンダーに依存しない方法です。OpenTelemetry Collector は、Jaeger や Prometheus などのオープンソースの可観測性データ形式をサポートし、1 つ以上のオープンソースまたは商用バックエンドに送信します。Collector は、インストルメンテーションライブラリーがテレメトリーデータをエクスポートするデフォルトの場所です。
第3章 Distributed Tracing Platform のインストール リンクのコピーリンクがクリップボードにコピーされました!
Distributed Tracing Platform をインストールするには、次の手順を実行します。
- Tempo Operator をインストールします。
- サポートされているオブジェクトストアを設定し、オブジェクトストアの認証情報のシークレットを作成します。
- 権限とテナントを設定します。
ユースケースに応じて次のデプロイメントを選択してインストールします。
-
マイクロサービスモードの
TempoStackインスタンス -
モノリシックモードの
TempoMonolithicインスタンス
-
マイクロサービスモードの
3.1. Tempo Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Tempo Operator は、Web コンソールまたはコマンドラインを使用してインストールできます。
3.1.1. Web コンソールを使用した Tempo Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Tempo Operator は、Web コンソールの Administrator ビューからインストールできます。
前提条件
-
cluster-adminロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-adminロールを持つアカウントを使用してログインしている。 サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、Distributed Tracing Platform には含まれていません。Distributed Tracing Platform をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
手順
-
Operators → OperatorHub に移動し、
Tempo Operatorを検索します。 Red Hat が提供 する Tempo Operator を選択します。
重要次の選択は、この Operator のデフォルトのプリセットです。
- Update channel → stable
- Installation mode → All namespaces on the cluster
- Installed Namespace → openshift-tempo-operator
- Update approval → Automatic
- Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
- Install → Install → View Operator を選択します。
検証
- インストール済み Operator ページの Details タブの ClusterServiceVersion details で、インストールの Status が Succeeded であることを確認します。
3.1.2. CLI を使用した Tempo Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Tempo Operator はコマンドラインからインストールできます。
前提条件
cluster-adminロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。ヒント-
OpenShift CLI (
oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc loginを実行します。oc login --username=<your_username>
$ oc login --username=<your_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift CLI (
サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、Distributed Tracing Platform には含まれていません。Distributed Tracing Platform をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
手順
以下のコマンドを実行して、Tempo Operator のプロジェクトを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、Operator グループを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、サブスクリプションを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Operator のステータスを確認します。
oc get csv -n openshift-tempo-operator
$ oc get csv -n openshift-tempo-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. オブジェクトストレージのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
サポートされているオブジェクトストレージを設定する際に、次の設定パラメーターを使用できます。
オブジェクトストレージを使用するには、TempoStack または TempoMonolithic インスタンスをデプロイする前に、サポートされているオブジェクトストアを設定し、オブジェクトストアの認証情報のシークレットを作成する必要があります。
| ストレージプロバイダー |
|---|
| Secret パラメーター |
|
|
| MinIO |
| MinIO Operator を参照してください。
|
| Amazon S3 |
|
|
| Security Token Service (STS) を使用する Amazon S3 |
|
|
| Microsoft Azure Blob Storage |
|
|
| Google Cloud Storage on Google Cloud |
|
|
3.2.1. Security Token Service を使用する Amazon S3 ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Security Token Service (STS) と AWS Command Line Interface (AWS CLI) を使用して、Amazon S3 ストレージをセットアップできます。必要に応じて、Cloud Credential Operator (CCO) を使用することもできます。
Amazon S3 ストレージおよび STS を使用した Distributed Tracing Platform の使用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- AWS CLI の最新バージョンがインストールされている。
- CCO を使用する場合は、クラスターに CCO がインストールおよび設定されている。
手順
- AWS S3 バケットを作成します。
次のステップで作成する AWS Identity and Access Management (AWS IAM) ロールと、
TempoStackまたはTempoMonolithicインスタンスのいずれかのサービスアカウントとの間に信頼関係を設定するために、AWS IAM ポリシー用に次のtrust.jsonファイルを作成します。trust.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow ヒント次のコマンドを実行して、OIDC プロバイダーの値を取得することもできます。
oc get authentication cluster -o json | jq -r '.spec.serviceAccountIssuer' | sed 's~http[s]*://~~g'
$ oc get authentication cluster -o json | jq -r '.spec.serviceAccountIssuer' | sed 's~http[s]*://~~g'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成した
trust.jsonポリシーファイルをアタッチして AWS IAM ロールを作成します。これを行うには、次のコマンドを実行します。aws iam create-role \ --role-name "tempo-s3-access" \ --assume-role-policy-document "file:///tmp/trust.json" \ --query Role.Arn \ --output text$ aws iam create-role \ --role-name "tempo-s3-access" \ --assume-role-policy-document "file:///tmp/trust.json" \ --query Role.Arn \ --output textCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作成した AWS IAM ロールに AWS IAM ポリシーをアタッチします。これを行うには、次のコマンドを実行します。
aws iam attach-role-policy \ --role-name "tempo-s3-access" \ --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"$ aws iam attach-role-policy \ --role-name "tempo-s3-access" \ --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"Copy to Clipboard Copied! Toggle word wrap Toggle overflow CCO を使用していない場合は、このステップをスキップしてください。CCO を使用している場合は、Tempo Operator のクラウドプロバイダー環境を設定します。これを行うには、次のコマンドを実行します。
oc patch subscription <tempo_operator_sub> \ -n <tempo_operator_namespace> \ --type='merge' -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "'"<role_arn>"'"}]}}}'$ oc patch subscription <tempo_operator_sub> \1 -n <tempo_operator_namespace> \2 --type='merge' -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "'"<role_arn>"'"}]}}}'3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform で、次のように、キーを使用してオブジェクトストレージシークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトストレージシークレットが作成されたら、Distributed Tracing Platform インスタンスの関連するカスタムリソースを次のように更新します。
TempoStackカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow TempoMonolithicカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. Security Token Service を使用した Azure ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Azure Command Line Interface (Azure CLI) を使用して、Security Token Service (STS) を備えた Azure ストレージをセットアップできます。
Azure ストレージおよび STS での Distributed Tracing Platform の使用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- Azure CLI の最新バージョンがインストールされている。
- Azure ストレージアカウントを作成している。
- Azure Blob ストレージコンテナーを作成している。
手順
次のコマンドを実行して、Azure マネージドアイデンティティーを作成します。
az identity create \ --name <identity_name> \ --resource-group <resource_group> \ --location <region> \ --subscription <subscription_id>
$ az identity create \ --name <identity_name> \1 --resource-group <resource_group> \2 --location <region> \3 --subscription <subscription_id>4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Query Frontend を除く Distributed Tracing Platform のすべてのコンポーネントで使用するために、OpenShift Container Platform サービスアカウントのフェデレーションアイデンティティー認証情報を作成します。これを行うには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- フェデレーションアイデンティティー認証情報を使用すると、OpenShift Container Platform サービスアカウントは、シークレットを保存したり、Azure サービスプリンシパルアイデンティティーを使用したりすることなく、Azure マネージドアイデンティティーとして認証できます。
- 2
- フェデレーション認証情報に選択した名前。
- 3
- クラスターの OpenID Connect (OIDC) プロバイダーの URL。
- 4
system:serviceaccount:<namespace>:tempo-<tempostack_instance_name>形式のクラスターのサービスアカウントサブジェクト。- 5
- フェデレーションアイデンティティー認証情報に対して発行されたトークンを検証するために使用される、想定されるオーディエンス。これは通常、
api://AzureADTokenExchangeに設定されます。
ヒント次のコマンドを実行すると、クラスターの OpenID Connect (OIDC) 発行者の URL を取得できます。
oc get authentication cluster -o json | jq -r .spec.serviceAccountIssuer
$ oc get authentication cluster -o json | jq -r .spec.serviceAccountIssuerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Distributed Tracing Platform の Query Frontend コンポーネントで使用するために、OpenShift Container Platform サービスアカウントのフェデレーションアイデンティティー認証情報を作成します。これを行うには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成された Azure マネージドアイデンティティーの Azure サービスプリンシパルアイデンティティーに、Storage Blob Data Contributor ロールを割り当てます。これを行うには、次のコマンドを実行します。
az role assignment create \ --assignee <assignee_name> \ --role "Storage Blob Data Contributor" \ --scope "/subscriptions/<subscription_id>
$ az role assignment create \ --assignee <assignee_name> \1 --role "Storage Blob Data Contributor" \ --scope "/subscriptions/<subscription_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ステップ 1 で作成した Azure マネージドアイデンティティーの Azure サービスプリンシパルアイデンティティー。
ヒント次のコマンドを実行すると、
<assignee_name>の値を取得できます。az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'" | jq -r --arg idName <identity_name> '.[] | select(.displayName == $idName) | .appId'`
$ az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'" | jq -r --arg idName <identity_name> '.[] | select(.displayName == $idName) | .appId'`Copy to Clipboard Copied! Toggle word wrap Toggle overflow ステップ 1 で作成した Azure マネージドアイデンティティーのクライアント ID を取得します。
CLIENT_ID=$(az identity show \ --name <identity_name> \ --resource-group <resource_group> \ --query clientId \ -o tsv)
CLIENT_ID=$(az identity show \ --name <identity_name> \1 --resource-group <resource_group> \2 --query clientId \ -o tsv)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure Workload Identity Federation (WIF) 用の OpenShift Container Platform シークレットを作成します。これを行うには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトストレージシークレットが作成されたら、Distributed Tracing Platform インスタンスの関連するカスタムリソースを次のように更新します。
TempoStackカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 前のステップで作成したシークレット。
TempoMonolithicカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 前のステップで作成したシークレット。
3.2.3. Security Token Service を使用した Google Cloud ストレージのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Google Cloud CLI を使用して、Security Token Service (STS) を利用する Google Cloud Storage (GCS) をセットアップできます。
GCS および STS を使用した Distributed Tracing Platform の使用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- Google Cloud CLI の最新バージョンがインストールされている。
手順
- Google Cloud に GCS バケットを作成します。
Google の Identity and Access Management (IAM) を使用して、サービスアカウントを作成または再利用します。
SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts create <iam_service_account_name> \ --display-name="Tempo Account" \ --project <project_id> \ --format='value(email)' \ --quiet)SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts create <iam_service_account_name> \1 --display-name="Tempo Account" \ --project <project_id> \2 --format='value(email)' \ --quiet)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な Google Cloud ロールを、プロジェクトレベルで作成されたサービスアカウントにバインドします。これを行うには、次のコマンドを実行します。
gcloud projects add-iam-policy-binding <project_id> \ --member "serviceAccount:$SERVICE_ACCOUNT_EMAIL" \ --role "roles/storage.objectAdmin"$ gcloud projects add-iam-policy-binding <project_id> \ --member "serviceAccount:$SERVICE_ACCOUNT_EMAIL" \ --role "roles/storage.objectAdmin"Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターに関連付けられている Google Cloud Workload Identity Pool の
POOL_ID値を取得します。この値を取得する方法は環境によって異なるため、次のコマンドは単なる例です。OIDC_ISSUER=$(oc get authentication.config cluster -o jsonpath='{.spec.serviceAccountIssuer}') \ &&$ OIDC_ISSUER=$(oc get authentication.config cluster -o jsonpath='{.spec.serviceAccountIssuer}') \ && POOL_ID=$(echo "$OIDC_ISSUER" | awk -F'/' '{print $NF}' | sed 's/-oidc$//')Copy to Clipboard Copied! Toggle word wrap Toggle overflow IAM ポリシーバインディングを追加します。これを行うには、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
$SERVICE_ACCOUNT_EMAILは、ステップ 2 のコマンドの出力です。
TempoStackカスタムリソースで使用するストレージシークレットのkey.jsonキーの認証情報ファイルを作成します。これを行うには、次のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、正しいオーディエンスを取得します。
gcloud iam workload-identity-pools providers describe "$PROVIDER_NAME" --format='value(oidc.allowedAudiences[0])'
$ gcloud iam workload-identity-pools providers describe "$PROVIDER_NAME" --format='value(oidc.allowedAudiences[0])'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Distributed Tracing Platform のストレージシークレットを作成します。
oc -n <tempo_namespace> create secret generic gcs-secret \ --from-literal=bucketname="<bucket_name>" \ --from-literal=audience="<audience>" \ --from-file=key.json=<output_file_path>
$ oc -n <tempo_namespace> create secret generic gcs-secret \ --from-literal=bucketname="<bucket_name>" \1 --from-literal=audience="<audience>" \2 --from-file=key.json=<output_file_path>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトストレージシークレットが作成されたら、Distributed Tracing Platform インスタンスの関連するカスタムリソースを次のように更新します。
TempoStackカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 前のステップで作成したシークレット。
TempoMonolithicカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 前のステップで作成したシークレット。
3.2.4. IBM Cloud Object Storage の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して IBM Cloud Object Storage をセットアップできます。
前提条件
-
OpenShift CLI (
oc) の最新バージョンをインストールした。詳細は、設定: CLI ツール の「OpenShift CLI の使用を開始する」を参照してください。 -
IBM Cloud Command Line Interface (
ibmcloud) の最新バージョンをインストールした。詳細は、IBM Cloud Docs の「Getting started with the IBM Cloud CLI」を参照してください。 IBM Cloud Object Storage を設定した。詳細は、IBM Cloud Docs の「Choosing a plan and creating an instance」を参照してください。
- IBM Cloud Platform アカウントを持っている。
- IBM Cloud Object Storage のプランを発注した。
- IBM Cloud Object Storage のインスタンスを作成した。
手順
- IBM Cloud でオブジェクトストアバケットを作成します。
IBM Cloud で、次のコマンドを実行して、オブジェクトストアバケットに接続するためのサービスキーを作成します。
ibmcloud resource service-key-create <tempo_bucket> Writer \ --instance-name <tempo_bucket> --parameters '{"HMAC":true}'$ ibmcloud resource service-key-create <tempo_bucket> Writer \ --instance-name <tempo_bucket> --parameters '{"HMAC":true}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow IBM Cloud で、次のコマンドを実行して、バケット認証情報を含むシークレットを作成します。
oc -n <namespace> create secret generic <ibm_cos_secret> \ --from-literal=bucket="<tempo_bucket>" \ --from-literal=endpoint="<ibm_bucket_endpoint>" \ --from-literal=access_key_id="<ibm_bucket_access_key>" \ --from-literal=access_key_secret="<ibm_bucket_secret_key>"
$ oc -n <namespace> create secret generic <ibm_cos_secret> \ --from-literal=bucket="<tempo_bucket>" \ --from-literal=endpoint="<ibm_bucket_endpoint>" \ --from-literal=access_key_id="<ibm_bucket_access_key>" \ --from-literal=access_key_secret="<ibm_bucket_secret_key>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform で、次のように、キーを使用してオブジェクトストレージシークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform で、
TempoStackカスタムリソースのストレージセクションを次のように設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IBM Cloud Storage のアクセスキーとシークレットキーが含まれるシークレットの名前。
3.3. 権限とテナントの設定 リンクのコピーリンクがクリップボードにコピーされました!
TempoStack または TempoMonolithic インスタンスをインストールする前に、1 つ以上のテナントを定義し、テナントの読み取りおよび書き込みアクセス権を設定する必要があります。このような認可設定は、Kubernetes のロールベースアクセス制御 (RBAC) のクラスターロールとクラスターロールバインディングを使用して設定できます。デフォルトでは、どのユーザーにも読み取り権限または書き込み権限は付与されません。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
Red Hat build of OpenTelemetry の OpenTelemetry Collector は、データの書き込み用のサービスアカウントと RBAC を使用して、トレースデータを TempoStack または TempoMonolithic インスタンスに送信できます。
| Component | Tempo Gateway サービス | OpenShift OAuth | TokenReview API | SubjectAccessReview API |
|---|---|---|---|---|
| Authentication | X | X | X | |
| 認可 | X | X |
3.3.1. テナントの読み取り権限の設定 リンクのコピーリンクがクリップボードにコピーされました!
テナントの読み取り権限は、Web コンソールの Administrator ビューまたはコマンドラインから設定できます。
前提条件
-
cluster-adminロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-adminロールを持つアカウントを使用してログインしている。
手順
任意の値を指定した
tenantNameおよびtenantIdパラメーターをTempoStackカスタムリソース (CR) に追加して、テナントを定義します。TempoStackCR のテナントの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow トレースを読み取るための読み取り (
get) 権限を持つクラスターロールにテナントを追加します。ClusterRoleリソースの RBAC 設定の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記ステップのクラスターロールのクラスターロールバインディングを定義して、認証されたユーザーにトレースデータの読み取り権限を付与します。
ClusterRoleBindingリソースの RBAC 設定の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 認証されたユーザー全員に、トレースデータの読み取り権限を付与します。
3.3.2. テナントの書き込み権限の設定 リンクのコピーリンクがクリップボードにコピーされました!
テナントの書き込み権限は、Web コンソールの Administrator ビューまたはコマンドラインから設定できます。
前提条件
-
cluster-adminロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-adminロールを持つアカウントを使用してログインしている。 - OpenTelemetry Collector をインストールし、権限を持つ許可済みのサービスアカウントを使用するように Collector を設定した。詳細は、Red Hat build of OpenTelemetry ドキュメントの「必要な RBAC リソースの自動作成」を参照してください。
手順
OpenTelemetry Collector で使用するためのサービスアカウントを作成します。
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector namespace: <project_of_opentelemetry_collector_instance>
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector namespace: <project_of_opentelemetry_collector_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow トレースを書き込むための書き込み (
create) 権限を持つクラスターロールにテナントを追加します。ClusterRoleリソースの RBAC 設定の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenTelemetry Collector のサービスアカウントを割り当てるためのクラスターロールバインディングを定義して、OpenTelemetry Collector に書き込み権限を付与します。
ClusterRoleBindingリソースの RBAC 設定の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 前のステップで作成したサービスアカウント。これは、クライアントがトレースデータをエクスポートするときに使用されます。
OpenTelemetryCollectorカスタムリソースを次のように設定します。-
トレーシングパイプラインサービスに、
bearertokenauthエクステンションと有効なトークンを追加します。 -
otlp/otlphttpエクスポーターにテナント名をX-Scope-OrgIDヘッダーとして追加します。 有効な認証局ファイルを使用して TLS を有効にします。
OpenTelemetry CR 設定のサンプル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 書き込み権限が設定されたサービスアカウント。
- 2
- サービスアカウントトークンを使用するためのベアラートークンエクステンション。
- 3
- サービスアカウントトークン。このトークンは、ベアラートークンヘッダーとして、クライアントによりトレーシングパイプラインサービスに送信されます。
- 4
- OTLP gRPC Exporter (
otlp/dev) または OTLP HTTP Exporter (otlphttp/dev) のいずれかを指定します。 - 5
- 有効なサービス CA ファイルを使用して TLS を有効にします。
- 6
- テナント名を含むヘッダー。
- 7
- OTLP gRPC Exporter (
otlp/dev) または OTLP HTTP Exporter (otlphttp/dev) のいずれかを指定します。 - 8
- CR の
exportersセクションで指定したエクスポーター。
-
トレーシングパイプラインサービスに、
3.4. TempoStack インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
TempoStack インスタンスは、Web コンソールまたはコマンドラインを使用してインストールできます。
3.4.1. Web コンソールを使用した TempoStack インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Administrator ビューから TempoStack インスタンスをインストールできます。
前提条件
-
cluster-adminロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-adminロールを持つアカウントを使用してログインしている。 サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、Distributed Tracing Platform には含まれていません。Distributed Tracing Platform をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
- 1 つ以上のテナントを定義し、読み取りおよび書き込み権限を設定した。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
手順
-
Home → Projects → Create Project に移動して、後続のステップで作成する
TempoStackインスタンス用に、許可される任意のプロジェクトを作成します。openshift-接頭辞で始まるプロジェクト名は許可されません。 Workloads → Secrets → Create → From YAML に移動して、
TempoStackインスタンス用に作成したプロジェクトに、オブジェクトストレージバケットのシークレットを作成します。詳細は、「オブジェクトストレージのセットアップ」を参照してください。Amazon S3 および MinIO ストレージのシークレット例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TempoStackインスタンスを作成します。注記同じクラスター上の別々のプロジェクトに、複数の
TempoStackインスタンスを作成できます。- Operators → Installed Operators に移動します。
- TempoStack → Create TempoStack → YAML view の順に選択します。
YAML view で、
TempoStackカスタムリソース (CR) をカスタマイズします。AWS S3 および MinIO ストレージと 2 つのテナント用の
TempoStackCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この CR は、HTTP および OpenTelemetry Protocol (OTLP) 経由で Jaeger Thrift を受信するように設定された
TempoStackデプロイメントを作成します。 - 2
TempoStackデプロイメント用に選択したプロジェクト。openshift-接頭辞で始まるプロジェクト名は許可されません。- 3
- Red Hat は、Red Hat OpenShift Distributed Tracing Platform ドキュメントに記載されているカスタムリソースオプションのみをサポートしています。
- 4
- トレースを保存するためのストレージを指定します。
- 5
- 前提条件の 1 つとして設定したオブジェクトストレージ用に、ステップ 2 で作成したシークレット。
- 6
- シークレットの
metadataセクションにあるnameフィールドの値。たとえば、minioです。 - 7
- この値には、Azure Blob Storage の場合は
azure、Google Cloud Storage の場合はgcs、Amazon S3、MinIO、または Red Hat OpenShift Data Foundation の場合はs3を使用できます。たとえば、s3です。 - 8
- Tempo Write-Ahead Logging (WAL) の永続ボリューム要求のサイズ。デフォルトは
10Giです。たとえば、1Giのように指定します。 - 9
- 任意。
- 10
- 値は
openshiftである必要があります。 - 11
- テナントのリスト。
- 12
- テナント名。
X-Scope-OrgIdHTTP ヘッダーの値として使用されます。 - 13
- テナントの一意の識別子。
TempoStackデプロイメントのライフサイクル全体を通じて一意である必要があります。Distributed Tracing Platform は、この ID を使用して、オブジェクトストレージ内のオブジェクトに接頭辞を付けます。UUID またはtempoNameフィールドの値を再利用できます。 - 14
- 認証と認可を実行するゲートウェイを有効にします。
- 15
http://<gateway_ingress>/api/traces/v1/<tenant_name>/searchのルート経由で、データを視覚化する Jaeger UI を公開します。
- Create を選択します。
検証
-
Project: ドロップダウンリストを使用して、
TempoStackインスタンスのプロジェクトを選択します。 -
Operators → Installed Operators に移動して、
TempoStackインスタンスの Status が Condition: Ready であることを確認します。 -
Workloads → Pods に移動して、
TempoStackインスタンスのすべてのコンポーネント Pod が稼働していることを確認します。 Tempo コンソールにアクセスします。
-
Networking → Routes に移動し、Ctrl+F で
tempoを検索します。 Location 列で URL を開き、Tempo コンソールにアクセスします。
注記Tempo コンソールをインストールした直後は、Tempo コンソールにトレースデータは表示されません。
-
Networking → Routes に移動し、Ctrl+F で
3.4.2. CLI を使用した TempoStack インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインから TempoStack インスタンスをインストールできます。
前提条件
cluster-adminロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。ヒント-
OpenShift CLI (
oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc loginコマンドを実行します。oc login --username=<your_username>
$ oc login --username=<your_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift CLI (
サポートされているプロバイダーによる必要なオブジェクトストレージ Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage の設定が完了している。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
警告オブジェクトストレージは必須ですが、Distributed Tracing Platform には含まれていません。Distributed Tracing Platform をインストールする前に、サポートされているプロバイダーによるオブジェクトストレージを選択して設定する必要があります。
- 1 つ以上のテナントを定義し、読み取りおよび書き込み権限を設定した。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
手順
次のコマンドを実行して、後続のステップで作成する
TempoStackインスタンス用に、許可される任意のプロジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
openshift-接頭辞で始まるプロジェクト名は許可されません。
TempoStackインスタンス用に作成したプロジェクトで、次のコマンドを実行して、オブジェクトストレージバケットのシークレットを作成します。oc apply -f - << EOF <object_storage_secret> EOF
$ oc apply -f - << EOF <object_storage_secret> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、「オブジェクトストレージのセットアップ」を参照してください。
Amazon S3 および MinIO ストレージのシークレット例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TempoStackインスタンス用に作成したプロジェクトに TempoStack インスタンスを作成します。注記同じクラスター上の別々のプロジェクトに、複数の
TempoStackインスタンスを作成できます。TempoStackカスタムリソース (CR) をカスタマイズします。AWS S3 および MinIO ストレージと 2 つのテナント用の
TempoStackCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この CR は、HTTP および OpenTelemetry Protocol (OTLP) 経由で Jaeger Thrift を受信するように設定された
TempoStackデプロイメントを作成します。 - 2
TempoStackデプロイメント用に選択したプロジェクト。openshift-接頭辞で始まるプロジェクト名は許可されません。- 3
- Red Hat は、Red Hat OpenShift Distributed Tracing Platform ドキュメントに記載されているカスタムリソースオプションのみをサポートしています。
- 4
- トレースを保存するためのストレージを指定します。
- 5
- 前提条件の 1 つとして設定したオブジェクトストレージ用に、ステップ 2 で作成したシークレット。
- 6
- シークレットの
metadataセクションにあるnameフィールドの値。たとえば、minioです。 - 7
- この値には、Azure Blob Storage の場合は
azure、Google Cloud Storage の場合はgcs、Amazon S3、MinIO、または Red Hat OpenShift Data Foundation の場合はs3を使用できます。たとえば、s3です。 - 8
- Tempo Write-Ahead Logging (WAL) の永続ボリューム要求のサイズ。デフォルトは
10Giです。たとえば、1Giのように指定します。 - 9
- 任意。
- 10
- 値は
openshiftである必要があります。 - 11
- テナントのリスト。
- 12
- テナント名。
X-Scope-OrgIdHTTP ヘッダーの値として使用されます。 - 13
- テナントの一意の識別子。
TempoStackデプロイメントのライフサイクル全体を通じて一意である必要があります。Distributed Tracing Platform は、この ID を使用して、オブジェクトストレージ内のオブジェクトに接頭辞を付けます。UUID またはtempoNameフィールドの値を再利用できます。 - 14
- 認証と認可を実行するゲートウェイを有効にします。
- 15
http://<gateway_ingress>/api/traces/v1/<tenant_name>/searchのルート経由で、データを視覚化する Jaeger UI を公開します。
次のコマンドを実行して、カスタマイズされた CR を適用します。
oc apply -f - << EOF <tempostack_cr> EOF
$ oc apply -f - << EOF <tempostack_cr> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、すべての
TempoStackcomponentsのstatusがRunning、conditionsがtype: Readyになっていることを確認します。oc get tempostacks.tempo.grafana.com simplest -o yaml
$ oc get tempostacks.tempo.grafana.com simplest -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、すべての
TempoStackコンポーネント Pod が稼働していることを確認します。oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Tempo コンソールにアクセスします。
以下のコマンドを実行してルートの詳細をクエリーします。
oc get route
$ oc get routeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Web ブラウザーで
https://<route_from_previous_step>を開きます。注記Tempo コンソールをインストールした直後は、Tempo コンソールにトレースデータは表示されません。
3.5. TempoMonolithic インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
TempoMonolithic インスタンスは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
TempoMonolithic インスタンスは、Web コンソールまたはコマンドラインを使用してインストールできます。
TempoMonolithic カスタムリソース (CR) は、モノリシックモードで Tempo デプロイメントを作成します。コンパクター、ディストリビューター、インジェスター、クエリアー、クエリーフロントエンドなど、Tempo デプロイメントのすべてのコンポーネントが、単一のコンテナーに含まれます。
TempoMonolithic インスタンスは、インメモリーストレージ、永続ボリューム、またはオブジェクトストレージへのトレースの保存をサポートしています。
小規模なデプロイメント、デモンストレーション、テストには、モノリシックモードでの Tempo デプロイメントが適しています。
Tempo のモノリシックデプロイメントは水平方向にスケーリングできません。水平スケーリングが必要な場合は、マイクロサービスモードでの Tempo デプロイメント用の TempoStack CR を使用してください。
3.5.1. Web コンソールを使用した TempoMonolithic インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
TempoMonolithic インスタンスは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Web コンソールの Administrator ビューから TempoMonolithic インスタンスをインストールできます。
前提条件
-
cluster-adminロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-adminロールを持つアカウントを使用してログインしている。 - 1 つ以上のテナントを定義し、読み取りおよび書き込み権限を設定した。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
手順
-
Home → Projects → Create Project に移動して、後続のステップで作成する
TempoMonolithicインスタンス用に、許可される任意のプロジェクトを作成します。openshift-接頭辞で始まるプロジェクト名は許可されません。 トレースの保存に使用するサポート対象のストレージのタイプ (インメモリーストレージ、永続ボリューム、オブジェクトストレージ) を決定します。
重要オブジェクトストレージは、Distributed Tracing Platform には含まれていません。そのため、サポートされているプロバイダー (Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、または Google Cloud Storage) によるオブジェクトストアを設定する必要があります。
また、オブジェクトストレージを選択するには、
TempoMonolithicインスタンス用に作成したプロジェクトにオブジェクトストレージバケットのシークレットを作成する必要があります。これは、Workloads → Secrets → Create → From YAML で実行できます。詳細は、「オブジェクトストレージのセットアップ」を参照してください。
Amazon S3 および MinIO ストレージのシークレット例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TempoMonolithicインスタンスを作成します。注記同じクラスター上の別々のプロジェクトに複数の
TempoMonolithicインスタンスを作成できます。- Operators → Installed Operators に移動します。
- TempoMonolithic → Create TempoMonolithic → YAML view を選択します。
YAML view で、
TempoMonolithicカスタムリソース (CR) をカスタマイズします。TempoMonolithicCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この CR は、OTLP プロトコルでトレースの取り込みを行う
TempoMonolithicデプロイメントを作成します。 - 2
TempoMonolithicデプロイメント用に選択したプロジェクト。openshift-接頭辞で始まるプロジェクト名は許可されません。- 3
- Red Hat は、Red Hat OpenShift Distributed Tracing Platform ドキュメントに記載されているカスタムリソースオプションのみをサポートしています。
- 4
- トレースを保存するためのストレージを指定します。
- 5
- トレースを保存するストレージのタイプ (インメモリーストレージ、永続ボリューム、またはオブジェクトストレージ)。永続ボリュームの値は
pvです。オブジェクトストレージの値は、使用するオブジェクトストアのタイプに応じて、s3、gcs、またはazureが受け入れられます。デフォルト値は、tmpfsインメモリーストレージのmemoryです。これは、Pod がシャットダウンするとデータが保持されないため、開発、テスト、デモ、および概念検証用の環境にのみ適しています。 - 6
- メモリーサイズ: インメモリーストレージの場合、これは
tmpfsボリュームのサイズを意味します。デフォルトは2Giです。永続ボリュームの場合、これは永続ボリューム要求のサイズを意味します。デフォルトは10Giです。オブジェクトストレージの場合、これは Tempo Write-Ahead Logging (WAL) の永続ボリューム要求のサイズを意味し、デフォルトは10Giです。 - 7
- オプション: オブジェクトストレージの場合、オブジェクトストレージのタイプ。使用するオブジェクトストアのタイプに応じて、
s3、gcs、およびazureが値として受け入れられます。 - 8
- オプション: オブジェクトストレージの場合、ストレージシークレットの
metadata内のnameの値。ストレージシークレットは、TempoMonolithicインスタンスと同じ namespace にあり、「表 1.必要なシークレットパラメーター」(「オブジェクトストレージのセットアップ」セクションを参照) で指定えているフィールドを含んでいる必要があります。 - 9
- オプション:
- 10
- オプション: CA 証明書を含む
ConfigMapオブジェクトの名前。 - 11
http://<gateway_ingress>/api/traces/v1/<tenant_name>/searchのルート経由で、データを視覚化する Jaeger UI を公開します。- 12
- Jaeger UI のルートの作成を有効にします。
- 13
- 任意。
- 14
- テナントをリスト表示します。
- 15
- テナント名。
X-Scope-OrgIdHTTP ヘッダーの値として使用されます。 - 16
- テナントの一意の識別子。
TempoMonolithicデプロイメントのライフサイクル全体を通じて一意である必要があります。この ID は、オブジェクトストレージ内のオブジェクトの接頭辞として追加されます。UUID またはtempoNameフィールドの値を再利用できます。
- Create を選択します。
検証
-
Project: ドロップダウンリストを使用して、
TempoMonolithicインスタンスのプロジェクトを選択します。 -
Operator → Installed Operator に移動して、
TempoMonolithicインスタンスの Status が Condition: Ready であることを確認します。 -
Workloads → Pod に移動して、
TempoMonolithicインスタンスの Pod が実行中であることを確認します。 Jaeger UI にアクセスします。
Networking → Routes に移動し、Ctrl+F を押して
jaegeruiを検索します。注記Jaeger UI は、
tempo-<metadata_name_of_TempoMonolithic_CR>-jaegeruiルートを使用します。- Location 列で URL を開き、Jaeger UI にアクセスします。
TempoMonolithicインスタンスの Pod の準備ができたら、クラスター内のtempo-<metadata_name_of_TempoMonolithic_CR>:4317(OTLP/gRPC) およびtempo-<metadata_name_of_TempoMonolithic_CR>:4318(OTLP/HTTP) エンドポイントにトレースを送信できます。Tempo API は、クラスター内の
tempo-<metadata_name_of_TempoMonolithic_CR>:3200エンドポイントで利用できます。
3.5.2. CLI を使用した TempoMonolithic インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
TempoMonolithic インスタンスは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
コマンドラインから TempoMonolithic インスタンスをインストールできます。
前提条件
cluster-adminロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。ヒント-
OpenShift CLI (
oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc loginコマンドを実行します。oc login --username=<your_username>
$ oc login --username=<your_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift CLI (
- 1 つ以上のテナントを定義し、読み取りおよび書き込み権限を設定した。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。
手順
次のコマンドを実行して、後続のステップで作成する
TempoMonolithicインスタンス用に、許可される任意のプロジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
openshift-接頭辞で始まるプロジェクト名は許可されません。
トレースの保存に使用するサポート対象のストレージのタイプ (インメモリーストレージ、永続ボリューム、オブジェクトストレージ) を決定します。
重要オブジェクトストレージは、Distributed Tracing Platform には含まれていません。そのため、サポートされているプロバイダー (Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、または Google Cloud Storage) によるオブジェクトストアを設定する必要があります。
また、オブジェクトストレージを選択するには、
TempoMonolithicインスタンス用に作成したプロジェクトにオブジェクトストレージバケットのシークレットを作成する必要があります。これを行うには、次のコマンドを実行します。oc apply -f - << EOF <object_storage_secret> EOF
$ oc apply -f - << EOF <object_storage_secret> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、「オブジェクトストレージのセットアップ」を参照してください。
Amazon S3 および MinIO ストレージのシークレット例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TempoMonolithicインスタンス用に作成したプロジェクト内に TempoMonolithic インスタンスを作成します。ヒント同じクラスター上の別々のプロジェクトに複数の
TempoMonolithicインスタンスを作成できます。TempoMonolithicカスタムリソース (CR) をカスタマイズします。TempoMonolithicCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この CR は、OTLP プロトコルでトレースの取り込みを行う
TempoMonolithicデプロイメントを作成します。 - 2
TempoMonolithicデプロイメント用に選択したプロジェクト。openshift-接頭辞で始まるプロジェクト名は許可されません。- 3
- Red Hat は、Red Hat OpenShift Distributed Tracing Platform ドキュメントに記載されているカスタムリソースオプションのみをサポートしています。
- 4
- トレースを保存するためのストレージを指定します。
- 5
- トレースを保存するストレージのタイプ (インメモリーストレージ、永続ボリューム、またはオブジェクトストレージ)。永続ボリュームの値は
pvです。オブジェクトストレージの値は、使用するオブジェクトストアのタイプに応じて、s3、gcs、またはazureが受け入れられます。デフォルト値は、tmpfsインメモリーストレージのmemoryです。これは、Pod がシャットダウンするとデータが保持されないため、開発、テスト、デモ、および概念検証用の環境にのみ適しています。 - 6
- メモリーサイズ: インメモリーストレージの場合、これは
tmpfsボリュームのサイズを意味します。デフォルトは2Giです。永続ボリュームの場合、これは永続ボリューム要求のサイズを意味します。デフォルトは10Giです。オブジェクトストレージの場合、これは Tempo Write-Ahead Logging (WAL) の永続ボリューム要求のサイズを意味し、デフォルトは10Giです。 - 7
- オプション: オブジェクトストレージの場合、オブジェクトストレージのタイプ。使用するオブジェクトストアのタイプに応じて、
s3、gcs、およびazureが値として受け入れられます。 - 8
- オプション: オブジェクトストレージの場合、ストレージシークレットの
metadata内のnameの値。ストレージシークレットは、TempoMonolithicインスタンスと同じ namespace にあり、「表 1.必要なシークレットパラメーター」(「オブジェクトストレージのセットアップ」セクションを参照) で指定えているフィールドを含んでいる必要があります。 - 9
- オプション:
- 10
- オプション: CA 証明書を含む
ConfigMapオブジェクトの名前。 - 11
http://<gateway_ingress>/api/traces/v1/<tenant_name>/searchのルート経由で、データを視覚化する Jaeger UI を公開します。- 12
- Jaeger UI のルートの作成を有効にします。
- 13
- 任意。
- 14
- テナントをリスト表示します。
- 15
- テナント名。
X-Scope-OrgIdHTTP ヘッダーの値として使用されます。 - 16
- テナントの一意の識別子。
TempoMonolithicデプロイメントのライフサイクル全体を通じて一意である必要があります。この ID は、オブジェクトストレージ内のオブジェクトの接頭辞として追加されます。UUID またはtempoNameフィールドの値を再利用できます。
次のコマンドを実行して、カスタマイズされた CR を適用します。
oc apply -f - << EOF <tempomonolithic_cr> EOF
$ oc apply -f - << EOF <tempomonolithic_cr> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、すべての
TempoMonolithiccomponentsのstatusがRunningであり、conditionsがtype: Readyであることを確認します。oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml
$ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
TempoMonolithicインスタンスの Pod が実行中であることを確認します。oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Jaeger UI にアクセスします。
次のコマンドを実行して、
tempo-<metadata_name_of_tempomonolithic_cr>-jaegeruiルートのルート詳細をクエリーします。oc get route
$ oc get routeCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Web ブラウザーで
https://<route_from_previous_step>を開きます。
TempoMonolithicインスタンスの Pod の準備ができたら、クラスター内のtempo-<metadata_name_of_tempomonolithic_cr>:4317(OTLP/gRPC) およびtempo-<metadata_name_of_tempomonolithic_cr>:4318(OTLP/HTTP) エンドポイントにトレースを送信できます。Tempo API は、クラスター内の
tempo-<metadata_name_of_tempomonolithic_cr>:3200エンドポイントで利用できます。
第4章 Distributed Tracing Platform の設定 リンクのコピーリンクがクリップボードにコピーされました!
Tempo Operator は、Distributed Tracing Platform のリソースを作成およびデプロイするためのアーキテクチャーと設定を定義したカスタムリソース定義 (CRD) ファイルを使用します。デフォルト設定をインストールすることも、ファイルを変更することもできます。
4.1. バックエンドストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
バックエンドストレージの設定は、永続ストレージについて および選択したストレージオプションに関連する設定セクションを参照してください。
4.2. TempoStack 設定パラメーターの概要 リンクのコピーリンクがクリップボードにコピーされました!
TempoStack カスタムリソース (CR) は、Distributed Tracing Platform のリソースを作成するためのアーキテクチャーと設定を定義したものです。これらのパラメーターを変更して、実装をビジネスニーズに合わせてカスタマイズできます。
TempoStack CR の例
- 1
- オブジェクトの作成時に使用する API バージョン。
- 2
- 作成する Kubernetes オブジェクトの種類を定義します。
- 3
nameの文字列、UID、オプションのnamespaceなどのオブジェクトを一意に識別するデータ。OpenShift Container Platform はUIDを自動的に生成し、オブジェクトが作成されるプロジェクトの名前でnamespaceを完了します。- 4
- TempoStack インスタンスの名前。
- 5
- TempoStack インスタンスのすべての設定パラメーターが含まれます。すべての Tempo コンポーネントに共通の定義が必要な場合は、
specセクションで定義します。定義が個々のコンポーネントに関連している場合は、spec.template.<component>セクションに配置します。 - 6
- ストレージはインスタンスのデプロイメント時に指定されます。インスタンスのストレージオプションの詳細は、インストールページを参照してください。
- 7
- Tempo コンテナーのコンピュートリソースを定義します。
- 8
- スパンを受け入れる前にディストリビューターからのデータを確認する必要があるインジェスターの数を表す整数値。
- 9
- トレースの保持に関する設定オプション。デフォルト値は
48hです。 - 10
- Tempo
distributorコンポーネントの設定オプション。 - 11
- Tempo
ingesterコンポーネントの設定オプション。 - 12
- Tempo
compactorコンポーネントの設定オプション。 - 13
- Tempo
querierコンポーネントの設定オプション。 - 14
- Tempo
query-frontendコンポーネントの設定オプション。 - 15
- Tempo
gatewayコンポーネントの設定オプション。 - 16
- 取り込みとクエリーのレートを制限します。
- 17
- 取り込みの流量制御を定義します。
- 18
- クエリーの流量制御を定義します。
- 19
- テレメトリーデータを処理するためのオペランドを設定します。
- 20
- 検索機能を設定します。
- 21
- この CR が Operator によって管理されるかどうかを定義します。デフォルト値は
managedです。
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| オブジェクトの作成時に使用する API バージョン。 |
|
|
|
| 作成する Kubernetes オブジェクトの種類を定義します。 |
| |
|
|
|
OpenShift Container Platform は | |
|
| オブジェクトの名前。 | TempoStack インスタンスの名前。 |
|
|
| 作成するオブジェクトの仕様。 |
TempoStack インスタンスのすべての設定パラメーターが含まれています。すべての Tempo コンポーネントの共通定義が必要な場合、 | 該当なし |
|
| TempoStack インスタンスに割り当てられたリソース。 | ||
|
| Ingester PVC のストレージサイズ。 | ||
|
| レプリケーション係数の設定。 | ||
|
| トレースの保持に関する設定オプション。 | ||
|
| ストレージを定義する設定オプション。 | ||
|
| Tempo ディストリビューターの設定オプション。 | ||
|
| Tempo インジェスターの設定オプション。 | ||
|
| Tempo コンパクターの設定オプション。 | ||
|
| Tempo クエリアーの設定オプション。 | ||
|
| Tempo クエリーフロントエンドの設定オプション。 | ||
|
| Tempo ゲートウェイの設定オプション。 |
4.3. クエリー設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Distributed Tracing Platform の 2 つのコンポーネントであるクエリアーとクエリーフロントエンドがクエリーを管理します。これらのコンポーネントは両方とも設定できます。
クエリアーコンポーネントは、インジェスターまたはバックエンドストレージで要求されたトレース ID を検索します。設定されたパラメーターに応じて、クエリアーコンポーネントはインジェスターの両方にクエリーを実行し、bloom またはインデックスをバックエンドからプルして、オブジェクトストレージ内のブロックを検索できます。クエリアーコンポーネントは GET /querier/api/traces/<trace_id> で HTTP エンドポイントを公開します。ただし、このエンドポイントを直接使用することは想定されていません。クエリーはクエリーフロントエンドに送信する必要があります。
| パラメーター | 説明 | 値 |
|---|---|---|
|
| ノード選択制約の単純な形式。 | type: object |
|
| コンポーネントに対して作成されるレプリカの数。 | type: integer; format: int32 |
|
| コンポーネント固有の Pod 容認。 | type: array |
クエリーフロントエンドコンポーネントは、受信クエリーの検索スペースをシャーディングする役割を持ちます。クエリーフロントエンドは、単純な HTTP エンドポイント (GET /api/traces/<trace_id>) を介してトレースを公開します。内部的には、クエリーフロントエンドコンポーネントは blockID スペースを設定可能な数のシャードに分割し、これらのリクエストをキューに登録します。クエリアーコンポーネントは、ストリーミング gRPC 接続を介してクエリーフロントエンドコンポーネントに接続し、これらのシャードクエリーを処理します。
| パラメーター | 説明 | 値 |
|---|---|---|
|
| クエリーフロントエンドコンポーネントの設定。 | type: object |
|
| ノード選択制約の単純な形式。 | type: object |
|
| クエリーフロントエンドコンポーネントに対して作成されるレプリカの数。 | type: integer; format: int32 |
|
| クエリーフロントエンドコンポーネントに固有の Pod 容認。 | type: array |
|
| Jaeger Query コンポーネントに固有のオプション。 | type: object |
|
|
| type: boolean |
|
| Jaeger Query Ingress のオプション。 | type: object |
|
| Ingress オブジェクトのアノテーション。 | type: object |
|
| Ingress オブジェクトのホスト名。 | type: string |
|
| IngressClass クラスターリソースの名前。この Ingress リソースを提供する Ingress コントローラーを定義します。 | type: string |
|
| OpenShift ルートのオプション。 | type: object |
|
|
終端タイプ。デフォルトは | type: string (enum: insecure, edge, passthrough, reencrypt) |
|
|
Jaeger Query UI の Ingress のタイプ。サポートされているタイプは、 | type: string (enum: ingress, route) |
|
| Monitor タブの設定。 | type: object |
|
|
Jaeger コンソールの Monitor タブを有効にします。 | type: boolean |
|
|
スパンのレート、エラー、および期間 (RED) メトリクスを含む Prometheus インスタンスへのエンドポイント。たとえば、 | type: string |
TempoStack CR のクエリーフロントエンドコンポーネントの設定例
4.4. UI の設定 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Observability Operator (COO) の分散トレーシング UI プラグインを、Red Hat OpenShift Distributed Tracing Platform のユーザーインターフェイス (UI) として使用できます。分散トレーシング UI プラグインのインストールと使用の詳細は、Cluster Observability Operator の「分散トレーシング UI プラグイン」を参照してください。
4.5. Jaeger UI の Monitor タブの設定 リンクのコピーリンクがクリップボードにコピーされました!
リクエストのレート、エラー、および期間 (RED) メトリクスをトレースから抽出して、OpenShift Container Platform Web コンソールの Monitor タブの Jaeger コンソールで視覚化できます。メトリクスは、Prometheus によってコレクターからスクレイピングされた OpenTelemetry コレクター内のスパンから導出されます。Prometheus は、ユーザーワークロードモニタリングスタックにデプロイできます。Jaeger UI は、Prometheus エンドポイントからこれらのメトリクスをクエリーし、可視化します。
前提条件
- Distributed Tracing Platform の権限とテナントを設定した。詳細は、「権限とテナントの設定」を参照してください。
手順
OpenTelemetry Collector の
OpenTelemetryCollectorカスタムリソースで、Spanmetrics コネクター (spanmetrics) を有効にします。このコネクターは、トレースからメトリクスを導出し、そのメトリクスを Prometheus 形式でエクスポートします。スパン RED 用の
OpenTelemetryCollectorカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ServiceMonitorカスタムリソースを作成して、Prometheus エクスポーターの収集を有効にします。- 2
- Spanmetrics コネクターはトレースを受信し、メトリクスをエクスポートします。
- 3
- OpenTelemetry プロトコルのスパンを受信する OTLP レシーバー。
- 4
- Prometheus エクスポーターは、Prometheus 形式でメトリクスをエクスポートするために使用されます。
- 5
- リソース属性はデフォルトでドロップされます。
- 6
- Spanmetrics コネクターは、トレースパイプラインのエクスポーターとして設定されています。
- 7
- Spanmetrics コネクターは、メトリクスパイプラインのレシーバーとして設定されています。
TempoStackカスタムリソースで、Monitor タブを有効にし、ユーザー定義のモニタリングスタックからデータを照会するように、Prometheus エンドポイントを Thanos Querier サービスに設定します。Monitor タブが有効な
TempoStackカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
spanmetricsコネクターによって生成されるスパン RED メトリクスを、アラートルールで使用します。たとえば、このコネクターは、サービスの速度低下に関するアラートの場合や、サービスレベル目標 (SLO) を定義する場合のために、duration_bucketヒストグラムとcallsカウンターメトリクスを作成します。これらのメトリクスには、サービス、API 名、操作タイプ、その他の属性を識別するラベルが付いています。Expand 表4.4 spanmetrics コネクターで作成されるメトリクスのラベル ラベル 説明 値 service_nameotel_service_name環境変数によって設定されるサービス名。frontendspan_name操作の名前。
-
/ -
/customer
span_kindサーバー、クライアント、メッセージング、または内部操作を識別します。
-
SPAN_KIND_SERVER -
SPAN_KIND_CLIENT -
SPAN_KIND_PRODUCER -
SPAN_KIND_CONSUMER -
SPAN_KIND_INTERNAL
フロントエンドサービスで 2000 ミリ秒以内に 95% の要求が処理されない場合の SLO のアラートルールを定義する
PrometheusRuleカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 95% のフロントエンドサーバーの応答時間値が 2000 ミリ秒未満であるかどうかを確認する式。時間範囲 (
[5m]) が収集間隔の 4 倍以上で、メトリクスの変化に対応できる十分な長さである必要があります。
-
4.6. レシーバーの TLS の設定 リンクのコピーリンクがクリップボードにコピーされました!
TempoStack または TempoMonolithic インスタンスのカスタムリソースで、ユーザーが指定する証明書または OpenShift のサービス提供証明書を使用して、レシーバーの TLS を設定できます。
4.6.1. TempoStack インスタンス用のレシーバーの TLS 設定 リンクのコピーリンクがクリップボードにコピーされました!
シークレットの TLS 証明書を指定することも、OpenShift Container Platform によって生成されるサービス提供証明書を使用することもできます。
シークレットの TLS 証明書を指定するには、
TempoStackカスタムリソースでそれを設定します。注記この機能は、有効な Tempo Gateway ではサポートされていません。
レシーバーの TLS と、ユーザーが指定するシークレットの証明書の使用
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、OpenShift Container Platform によって生成されたサービス提供証明書を使用することもできます。
注記この機能では、相互 TLS 認証 (mTLS) はサポートされていません。
レシーバーの TLS と、OpenShift Container Platform によって生成されるサービス提供証明書の使用
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Tempo Distributor の TLS に十分な設定。
4.6.2. TempoMonolithic インスタンス用のレシーバーの TLS 設定 リンクのコピーリンクがクリップボードにコピーされました!
シークレットの TLS 証明書を指定することも、OpenShift Container Platform によって生成されるサービス提供証明書を使用することもできます。
シークレットの TLS 証明書を指定するには、
TempoMonolithicカスタムリソースでそれを設定します。注記この機能は、有効な Tempo Gateway ではサポートされていません。
レシーバーの TLS と、ユーザーが指定するシークレットの証明書の使用
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、OpenShift Container Platform によって生成されたサービス提供証明書を使用することもできます。
注記この機能では、相互 TLS 認証 (mTLS) はサポートされていません。
レシーバーの TLS と、OpenShift Container Platform によって生成されるサービス提供証明書の使用
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Tempo Distributor の TLS の最小設定。
4.7. クエリー RBAC の設定 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、クエリーのロールベースアクセス制御 (RBAC) を設定して、ユーザーに権限を付与した namespace ごとにユーザーの SPAN 属性をフィルタリングできます。
クエリー RBAC を有効にすると、ユーザーは引き続きすべての namepsace からのトレースにアクセスできるようになり、service.name 属性と k8s.namespace.name 属性もすべてのユーザーに表示されます。
前提条件
cluster-adminロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。ヒント-
OpenShift CLI (
oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc loginを実行します。oc login --username=<your_username>
$ oc login --username=<your_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift CLI (
手順
TempoStackカスタムリソース (CR) でマルチテナントを有効にし、RBAC のクエリーを実行します。以下はその例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターロールとクラスターロールバインディングを作成して、
TempoStackCR で指定したテナントにアクセスするための権限をターゲットユーザーに付与します。以下はその例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ターゲットユーザーにプロジェクトの属性を読み取る権限を付与します。これを行うには、次のコマンドを実行します。
oc adm policy add-role-to-user view <username> -n <project>
$ oc adm policy add-role-to-user view <username> -n <project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8. taint および toleration の使用 リンクのコピーリンクがクリップボードにコピーされました!
専用ノードで TempoStack Pod をスケジュールするには、OpenShift 4 で nodeSelector と tolerations を使用してインフラノードにさまざまな TempoStack コンポーネントをデプロイする方法 を参照してください。
4.9. 監視とアラートの設定 リンクのコピーリンクがクリップボードにコピーされました!
Tempo Operator は、distributor や ingester などの各 TempoStack コンポーネントのモニタリングとアラートをサポートし、Operator 自体に関するアップグレードおよび運用のメトリクスを公開します。
4.9.1. TempoStack のメトリクスとアラートの設定 リンクのコピーリンクがクリップボードにコピーされました!
TempoStack インスタンスのメトリクスとアラートを有効にできます。
前提条件
- ユーザー定義プロジェクトのモニタリングがクラスターで有効にされている。
手順
TempoStack インスタンスのメトリクスを有効にするには、
spec.observability.metrics.createServiceMonitorsフィールドをtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow TempoStack インスタンスのアラートを有効にするには、
spec.observability.metrics.createPrometheusRulesフィールドをtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Web コンソールの Administrator ビューを使用して、正常に設定されたことを確認できます。
-
Observe → Targets に移動して Source: User でフィルタリングし、
tempo-<instance_name>-<component>形式の ServiceMonitors のステータスが Up であることを確認します。 - アラートが正しく設定されていることを確認するには、Observe → Alerting → Alerting rules に移動して Source: User でフィルタリングし、TempoStack インスタンスコンポーネントの Alert rules が利用可能であることを確認します。
4.9.2. Tempo Operator のメトリクスとアラートの設定 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールから Tempo Operator をインストールする場合は、Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択すると、Tempo Operator のメトリクスおよびアラートを作成できます。
インストール時にチェックボックスを選択しなかった場合も、Tempo Operator をインストールした後にメトリクスとアラートを手動で有効にできます。
手順
-
Tempo Operator がインストールされているプロジェクトに
openshift.io/cluster-monitoring: "true"ラベルを追加します。デフォルトはopenshift-tempo-operatorです。
検証
Web コンソールの Administrator ビューを使用して、正常に設定されたことを確認できます。
-
Observe → Targets に移動して Source: Platform でフィルタリングし、
tempo-operatorを検索します。その場合は、ステータスは Up でなければなりません。 - アラートが正しく設定されていることを確認するには、Observe → Alerting → Alerting rules に移動して Source: Platform でフィルタリングし、Tempo Operator の Alert rules を見つけます。
第5章 Distributed Tracing Platform のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
さまざまなトラブルシューティング方法を使用して、TempoStack または TempoMonolithic インスタンスの問題を診断して修正できます。
5.1. コマンドラインからの診断データの収集 リンクのコピーリンクがクリップボードにコピーされました!
サポートケースを送信するときは、クラスターに関する診断情報を Red Hat サポートに含めると役立ちます。oc adm must-gather ツールを使用すると、TempoStack や TempoMonolithic などのさまざまなタイプのリソースや、Deployment、Pod、ConfigMap などの作成されたリソースの診断データを収集できます。oc adm must-gather ツールは、このデータを収集する新しい Pod を作成します。
手順
収集したデータを保存するディレクトリーから、
oc adm must-gatherコマンドを実行してデータを収集します。oc adm must-gather --image=ghcr.io/grafana/tempo-operator/must-gather -- \ /usr/bin/must-gather --operator-namespace <operator_namespace>
$ oc adm must-gather --image=ghcr.io/grafana/tempo-operator/must-gather -- \ /usr/bin/must-gather --operator-namespace <operator_namespace>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Operator がインストールされるデフォルトの namespace は
openshift-tempo-operatorです。
検証
- 新しいディレクトリーが作成され、収集されたデータが含まれていることを確認します。
第6章 アップグレード リンクのコピーリンクがクリップボードにコピーされました!
バージョンアップグレードの場合、Tempo Operator は Operator Lifecycle Manager (OLM) を使用します。これは、クラスター内の Operator のインストール、アップグレード、ロールベースのアクセス制御 (RBAC) を制御します。
OLM は、デフォルトで OpenShift Container Platform で実行されます。OLM は利用可能な Operator のクエリーやインストールされた Operator のアップグレードを実行します。
Tempo Operator が新しいバージョンにアップグレードされると、その Operator が管理する実行中の TempoStack インスタンスをスキャンし、新しい Operator バージョンに対応するバージョンにアップグレードします。
第7章 Distributed Tracing Platform の削除 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターから Red Hat OpenShift Distributed Tracing Platform を削除する手順は次のとおりです。
- すべての Distributed Tracing Platform Pod をシャットダウンします。
- TempoStack インスタンスを削除します。
- Tempo Operator を削除します。
7.1. Web コンソールを使用して削除する リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Administrator ビューで、TempoStack インスタンスを削除できます。
前提条件
-
cluster-adminロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。 -
Red Hat OpenShift Dedicated の場合、
dedicated-adminロールを持つアカウントを使用してログインしている。
手順
- Operators → Installed Operators → Tempo Operator → TempoStack に移動します。
-
TempoStack インスタンスを削除するには、
→ Delete TempoStack → Delete を選択します。
- オプション: Tempo Operator を削除します。
7.2. CLI を使用して削除する リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインで TempoStack インスタンスを削除できます。
前提条件
cluster-adminロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc) セッション。ヒント-
OpenShift CLI (
oc) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc loginを実行します。oc login --username=<your_username>
$ oc login --username=<your_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OpenShift CLI (
手順
以下のコマンドを実行して、TempoStack インスタンスの名前を取得します。
oc get deployments -n <project_of_tempostack_instance>
$ oc get deployments -n <project_of_tempostack_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、TempoStack インスタンスを削除します。
oc delete tempo <tempostack_instance_name> -n <project_of_tempostack_instance>
$ oc delete tempo <tempostack_instance_name> -n <project_of_tempostack_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: Tempo Operator を削除します。
検証
以下のコマンドを実行して、出力に TempoStack インスタンスがないことを確認します。ない場合、正常に削除されています。
oc get deployments -n <project_of_tempostack_instance>
$ oc get deployments -n <project_of_tempostack_instance>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.