|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
エクスポーター設定
すべてのSDKは、言語に関係なく、Open Telemetryのhttps://opentelemetry.io/docs/concepts/glossary/#_service[サービス名]とエクスポーターエンドポイント(すなわち、テレメトリが送信される場所)を定義するために同じ設定を使用します。
これらは、計測済みアプリケーションの環境変数を設定することで構成できます。
Kubernetesでは、ワークロードのマニフェストにこれらの環境変数を設定します(`<the-service-name>`をアプリケーションサービスの名前に置き換えてください):
...
spec:
containers:
- env:
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://opentelemetry-collector.open-telemetry.svc.cluster.local:4317
- name: OTEL_SERVICE_NAME
value: <the-service-name>
- name: OTEL_EXPORTER_OTLP_PROTOCOL
value: grpc
...
例に指定されたエンドポイントは、コレクターがインストールガイドのデフォルトを使用してインストールされたと仮定しています。ポート`4317`を使用し、OTLPプロトコルの`gRPC`バージョンを使用します。一部の計測はHTTPのみをサポートしており、その場合はポート`4318`を使用してください。
サービス名は、すでに存在するKubernetesラベルから導出することもできます。例えば、次のようになります:
spec:
containers:
- env:
- name: OTEL_SERVICE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.labels['app.kubernetes.io/component']
gRPC vs HTTP
OTLP、オープンテレメトリプロトコルは、HTTP上でgRPCとprotobufをサポートしています。一部のSDKは、HTTP経由のJSONもサポートしています。前のセクションでは、エクスポーター・プロトコルが`gRPC`に設定されており、通常は最良のパフォーマンスを提供し、多くのSDKのデフォルトとなっています。ただし、場合によっては問題が発生することがあります。
-
一部のファイアウォールはgRPCを処理するように設定されていません。
-
(リバース)プロキシやロードバランサーは、追加の設定なしではgRPCをサポートしない場合があります。
-
gRPCの長期間接続は、負荷分散時に問題を引き起こす可能性があります。
gRPCの代わりにHTTPに切り替えるには、プロトコルを`http`に変更し、ポート`4318`を使用します。
要約すると、gRPCに問題が発生した場合はHTTPを使用してください。
-
`grpc`プロトコルはポート`4317`を使用します。
-
`http`プロトコルはポート`4318`を使用します。