1.5. OpenShift インスタンスへの Jaeger のインストール
3scale API プロバイダーは、Jaeger と共に OpenTracing を使用して、API への呼び出しのトレースおよびトラブルシューティングを行うことができます。そのためには、3scale を実行中の 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 -
oc process -f https://raw.githubusercontent.com/jaegertracing/jaeger-openshift/master/all-in-one/jaeger-all-in-one-template.yml | oc create -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で Jaeger 設定ファイル
jaeger_config.json
を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
sampler
定数を 1 に設定すると、すべてのリクエストがサンプリングされます。 -
reporter
の場所およびキューサイズは必須です。 -
リクエストを追跡するためには、
headers
セクションのTraceContextHeaderName
エントリーは必須です。
-
Jaeger 設定ファイルから ConfigMap を作成し、それを APIcast にマウントします。
oc create configmap jaeger-config --from-file=jaeger_config.json oc set volumes dc/apicast --add -m /tmp/jaeger/ --configmap-name jaeger-config
oc create configmap jaeger-config --from-file=jaeger_config.json oc set volumes dc/apicast --add -m /tmp/jaeger/ --configmap-name jaeger-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前のステップで追加した設定で、OpenTracing および Jaeger を有効にします。
oc set env deploymentConfig/apicast OPENTRACING_TRACER=jaeger OPENTRACING_CONFIG=/tmp/jaeger/jaeger_config.json
oc set env deploymentConfig/apicast OPENTRACING_TRACER=jaeger OPENTRACING_CONFIG=/tmp/jaeger/jaeger_config.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Jaeger インターフェイスが動作している URL を確認します。
oc get route (…) jaeger-query-myproject.127.0.0.1.nip.io
oc get route (…) jaeger-query-myproject.127.0.0.1.nip.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 前のステップで確認した URL から Jaeger インターフェイスを開きます。Openshift のヘルスチェックから読み込まれているデータが表示されます。
- リクエストのトレースをすべて表示できるように、OpenTracing および Jaeger のサポートをバックエンド API に追加します。この操作は、使用されるフレームワークおよび言語に応じてバックエンドごとに異なります。例として Using OpenTracing with Jaeger to collect Application Metrics in Kubernetes を参照してください。