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.8.4. トレーシング
8.4.1. リクエストのトレース リンクのコピーリンクがクリップボードにコピーされました!
分散トレースは、アプリケーションを設定する各種のサービスを使用した要求のパスを記録します。これは、各種の異なる作業単位についての情報を連携させ、分散トランザクションでのイベントチェーン全体を把握できるようにするために使用されます。作業単位は、異なるプロセスまたはホストで実行される場合があります。
8.4.1.1. 分散トレースの概要 リンクのコピーリンクがクリップボードにコピーされました!
サービスの所有者は、分散トレースを使用してサービスをインストルメント化し、サービスアーキテクチャーに関する洞察を得ることができます。分散トレースを使用して、現代的なクラウドネイティブのマイクロサービスベースのアプリケーションにおける、コンポーネント間の対話の監視、ネットワークプロファイリング、およびトラブルシューティングを行うことができます。
分散トレースを使用すると、以下の機能を実行できます。
- 分散トランザクションの監視
- パフォーマンスとレイテンシーの最適化
- 根本原因分析の実行
Red Hat OpenShift の分散トレースは、2 つの主要コンポーネントで設定されています。
- Red Hat OpenShift 分散トレースプラットフォーム: このコンポーネントは、オープンソースの Jaeger プロジェクト に基づいています。
- Red Hat OpenShift 分散トレースデータ収集: このコンポーネントは、オープンソースの OpenTelemetry プロジェクト に基づいています。
これらのコンポーネントは共に、特定のベンダーに依存しない OpenTracing API およびインストルメンテーションに基づいています。
8.4.2. Red Hat OpenShift 分散トレースの使用 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless で Red Hat 分散トレースを使用して、サーバーレスアプリケーションを監視およびトラブルシューティングできます。
8.4.2.1. Red Hat 分散トレースを使用して分散トレースを有効にする リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift 分散トレースは、複数のコンポーネントで設定されており、トレースデータを収集し、保存し、表示するためにそれらが連携します。
前提条件
- クラスター管理者のアクセスを持つ OpenShift Container Platform アカウントを使用できる。
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing をインストールしていない。これらは Red Hat OpenShift 分散トレースのインストール後にインストールする必要があります。
- OpenShift Container Platform の分散トレーシングのインストールのドキュメントに従って、Red Hat OpenShift の分散トレーシングをインストールしている。
-
OpenShift CLI (
oc) がインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
OpenTelemetryCollectorカスタムリソース (CR) を作成します。OpenTelemetryCollector CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat 分散トレースがインストールされているネームスペースで 2 つの Pod が実行されていることを確認します。
oc get pods -n <namespace>
$ oc get pods -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE cluster-collector-collector-85c766b5c-b5g99 1/1 Running 0 5m56s jaeger-all-in-one-inmemory-ccbc9df4b-ndkl5 2/2 Running 0 15m
NAME READY STATUS RESTARTS AGE cluster-collector-collector-85c766b5c-b5g99 1/1 Running 0 5m56s jaeger-all-in-one-inmemory-ccbc9df4b-ndkl5 2/2 Running 0 15mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のヘッドレスサービスが作成されていることを確認します。
oc get svc -n <namespace> | grep headless
$ oc get svc -n <namespace> | grep headlessCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
cluster-collector-collector-headless ClusterIP None <none> 9411/TCP 7m28s jaeger-all-in-one-inmemory-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP 16m
cluster-collector-collector-headless ClusterIP None <none> 9411/TCP 7m28s jaeger-all-in-one-inmemory-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP 16mCopy to Clipboard Copied! Toggle word wrap Toggle overflow これらのサービスは、Jaeger、Knative Serving、および Knative Eventing を設定するのに使用されます。Jaeger サービスの名前は異なる場合があります。
- OpenShift Serverless Operator のインストールのドキュメントに従って、OpenShift Serverless Operator をインストールします。
以下の
KnativeServingCR を作成して Knative Serving をインストールします。KnativeServing CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sample-rateはサンプリングの可能性を定義します。sample-rate: "0.1"を使用すると、10 トレースの 1 つがサンプリングされます。
次の
KnativeEventingCR を作成して、Knative Eventing をインストールします。KnativeEventing CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sample-rateはサンプリングの可能性を定義します。sample-rate: "0.1"を使用すると、10 トレースの 1 つがサンプリングされます。
Knative サービスを作成します。
サービスの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスにいくつかのリクエストを行います。
HTTPS 要求の例
curl https://helloworld-go.example.com
$ curl https://helloworld-go.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Jaeger Web コンソールの URL を取得します。
コマンドの例
oc get route jaeger-all-in-one-inmemory -o jsonpath='{.spec.host}' -n <namespace>$ oc get route jaeger-all-in-one-inmemory -o jsonpath='{.spec.host}' -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Jaeger コンソールを使用してトレースを検証できるようになりました。
8.4.3. Jaeger 分散トレースの使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift 分散トレースのすべてのコンポーネントをインストールしたくない場合でも、OpenShift Serverless を使用する OpenShift Container Platform で分散トレースを使用できます。
8.4.3.1. 分散トレースを有効にするための Jaeger の設定 リンクのコピーリンクがクリップボードにコピーされました!
Jaeger を使用して分散トレースを有効にするには、Jaeger をスタンドアロン統合としてインストールおよび設定する必要があります。
前提条件
- クラスター管理者のアクセスを持つ OpenShift Container Platform アカウントを使用できる。
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing をインストールしました。
- Red Hat 分散トレースプラットフォーム Operator をインストールしました。
-
OpenShift CLI (
oc) がインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
以下を含む
Jaegerカスタムリソース YAML ファイルを作成し、これを適用します。Jaeger CR
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger namespace: default
apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: jaeger namespace: defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow KnativeServingCR を編集し、トレース用に YAML 設定を追加して、Knative Serving のトレースを有効にします。Serving の YAML のトレース例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sample-rateはサンプリングの可能性を定義します。sample-rate: "0.1"を使用すると、10 トレースの 1 つがサンプリングされます。- 2
backendはzipkinに設定される必要があります。- 3
zipkin-endpointはjaeger-collectorサービスエンドポイントを参照する必要があります。このエンドポイントを取得するには、Jaeger CR が適用される namespace を置き換えます。- 4
- デバッグは
falseに設定する必要があります。debug: "true"を設定してデバッグモードを有効にすることで、サンプリングをバイパスしてすべてのスパンがサーバーに送信されるようにします。
KnativeEventingCR を編集して、Knative Eventing のトレースを有効にします。Eventing の YAML のトレース例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sample-rateはサンプリングの可能性を定義します。sample-rate: "0.1"を使用すると、10 トレースの 1 つがサンプリングされます。- 2
backendをzipkinに設定します。- 3
zipkin-endpointをjaeger-collectorサービスエンドポイントに指定する必要があります。このエンドポイントを取得するには、Jaeger CR が適用される namespace を置き換えます。- 4
- デバッグは
falseに設定する必要があります。debug: "true"を設定してデバッグモードを有効にすることで、サンプリングをバイパスしてすべてのスパンがサーバーに送信されるようにします。
検証
jaeger ルートを使用して Jaeger Web コンソールにアクセスし、追跡データを表示できます。
以下のコマンドを入力して
jaegerルートのホスト名を取得します。oc get route jaeger -n default
$ oc get route jaeger -n defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD jaeger jaeger-default.apps.example.com jaeger-query <all> reencrypt None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD jaeger jaeger-default.apps.example.com jaeger-query <all> reencrypt NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ブラウザーでエンドポイントアドレスを開き、コンソールを表示します。