|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
SDKエクスポーターの設定
SUSE Observabilityにデータを送信するために、アプリケーションを計測するために使用されるSDKは、ビルトインのエクスポーターを使用します。運用準備完了のセットアップでは、計測済みアプリケーションの近くにa collectorを配置してデータをSUSE Observabilityに送信しますが、計測済みアプリケーションが直接送信することも可能です。
コレクター使用時(運用準備完了のセットアップ)
Kubernetes用SDKエクスポーター設定
すべての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']
他のインストール用SDKエクスポーター設定
SDKを設定するには、アプリケーションのためにこれらの環境変数を設定してください:
export OTEL_EXPORTER_OTLP_ENDPOINT="http://<the-host-for-the-collector>:4317"
export OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
export OTEL_SERVICE_NAME="<the-service-name>"
export OTEL_RESOURCE_ATTRIBUTES='service.namespace=<the-namespace>'
例では、ポート`4317`を使用し、OTLPプロトコルの`gRPC`バージョンを使用します。一部の計測はHTTPのみをサポートしており、ポート`4318`を使用し、プロトコルは`http`に設定されています。使用している言語のSDKドキュメントを参照して、SDKがサポートしているプロトコルを確認してください。`OTEL_EXPORTER_OLTP_ENDPOINT`と`OTEL_EXPORTER_OTLP_PROTOCOL`は省略可能で、デフォルト値があり、ローカルホストの優先エンドポイントにデータを送信します。
`OTEL_RESOURCE_ATTRIBUTES`はオプションであり、サービスネームスペースを定義することに加えて、カンマ区切りのリストでより多くのリソース属性を設定するために使用できます。
gRPC vs HTTP
OTLP、オープンテレメトリプロトコルは、HTTP上でgRPCとprotobufをサポートしています。前のセクションでは、エクスポータープロトコルが`gRPC`に設定されており、通常は最良のパフォーマンスを提供します。SDKがgRPCをサポートしていないことに加えて、HTTPを好む他の理由もあります:
-
一部のファイアウォールはgRPCを処理するように設定されていません。
-
(リバース)プロキシやロードバランサーは、追加の設定なしではgRPCをサポートしない場合があります。
-
gRPCの長期間接続は、負荷分散時に問題を引き起こす可能性があります。
gRPCの代わりにHTTPに切り替えるには、プロトコルを`http`に変更し、ポート`4318`を使用します。
要約すると、gRPCが機能しない場合はHTTPを使用してみることができます:
-
`grpc`プロトコルはコレクターのポート`4317`を使用します。
-
`http`プロトコルはコレクターのポート`4318`を使用します。
コレクターなし
小規模なテストセットアップでは、計測済みアプリケーションからSUSE Observabilityに直接データを送信することが便利です。上記のコレクターセットアップとの唯一の違いは、`OTEL_EXPORTER_OTLP_ENDPOINT`に異なる値を使用することです:
-
gRPCの場合、SUSE ObservabilityのOTLPエンドポイントを使用します。OTLP APIsページを参照してください。
-
HTTPの場合、SUSE ObservabilityのOTLP over HTTPエンドポイントを使用します。OTLP APIsページを参照してください。
|
コレクターのURL*と*ポートの両方をSUSE Observabilityのエンドポイントに置き換えます。SUSE Observabilityのインストールに応じて、ポートは異なります。 |