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 -
以下の内容で 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
の場所およびキューサイズは必須です。 -
リクエストを追跡するためには、
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
前のステップで追加した設定で、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 を参照してください。