1.6.4. OpenShift インスタンスへの Jaeger のインストール
本セクションでは、実行中の OpenShift インスタンスへの Jaeger のインストールについて説明します。
Jaeger はサードパーティーコンポーネントであり、APIcast と共に使用する場合を除き 3scale はサポートを提供しません。以下の手順は参考例としてのみ提供され、実稼働環境での使用には適しません。
現在の namespace に Jaeger オールインワンをインストールします。
oc process -f https://raw.githubusercontent.com/jaegertracing/jaeger-openshift/master/all-in-one/jaeger-all-in-one-template.yml | oc create -f -
以下の内容で Jaeger 設定ファイル
jaeger_config.json
を作成します。{ "service_name": "apicast", "disabled": false, "sampler": { "type": "const", "param": 1 }, "reporter": { "queueSize": 100, "bufferFlushInterval": 10, "logSpans": false, "localAgentHostPort": "jaeger-agent:6831" }, "headers": { "jaegerDebugHeader": "debug-id", "jaegerBaggageHeader": "baggage", "TraceContextHeaderName": "uber-trace-id", "traceBaggageHeaderPrefix": "testctx-" }, "baggage_restrictions": { "denyBaggageOnInitializationFailure": false, "hostPort": "127.0.0.1:5778", "refreshInterval": 60 } }
-
すべてのリクエストをサンプリングするために、
sampler
定数を 1 に設定します。 -
reporter
の場所およびキューサイズを設定します。 -
リクエストを追跡するのに使用する
TraceContextHeaderName
を含め、headers
を設定します。
-
すべてのリクエストをサンプリングするために、
Jaeger 設定ファイルから ConfigMap を作成し、それを APIcast にマウントします。
oc create configmap jaeger-config --from-file=jaeger_config.json oc volume dc/apicast --add -m /tmp/jaeger/ --configmap-name jaeger-config
前のステップで追加した設定で、OpenTracing および Jaeger を有効にします。
oc set env deploymentConfig/apicast OPENTRACING_TRACER=jaeger OPENTRACING_CONFIG=/tmp/jaeger/jaeger_config.json
Jaeger インターフェースが動作している URL を確認します。
oc get route (…) jaeger-query-myproject.127.0.0.1.nip.io
- 前のステップで確認した URL から Jaeger インターフェースを開きます。Openshift のヘルスチェックから読み込まれているデータが表示されます。
- 最後のステップは、リクエストのトレースをすべて表示できるように、OpenTracing および Jaeger のサポートをバックエンド API に追加することです。この操作は、使用されるフレームワークおよび言語に応じてバックエンドごとに異なります。例として「Using OpenTracing with Jaeger to collect Application Metrics in Kubernetes」を参照してください。
Jaeger の設定に関する詳細は、以下のドキュメントを参照してください。
- Jaeger OpenShift Templates の Development setup
- Jaeger on OpenShift Production setup
- Distributed tracing on OpenShift Service Mesh