OpenTelemetry のデータを Instana エージェントに送信する
Instana エージェントは、 OTLP 形式の OpenTelemetry トレース、メトリクス、およびログを直接受信できます。 その後、 Instana エージェントはデータを Instana バックエンドに転送します。 以下の構成を実行します。
OpenTelemetry のデータ取り込みを有効にする
デフォルトでは、 Instana ホストエージェントにおける OpenTelemetry のデータ取り込み機能が有効になっています。
ホストエージェントで OpenTelemetry データの受信を有効にするには、ホストエージェントの configuration.yaml ファイルに以下のスニペットを追加してください:
com.instana.plugin.opentelemetry:
grpc:
enabled: true
# port: 4317
http:
enabled: true
# port: 4318
OpenTelemetry のデータ取り込みが有効化されると、ホストエージェントは、設定または環境変数によって変更されていない限り、デフォルトポート( gRPC への接続は 4317、 HTTP または HTTPS への接続は 4318)で、 OpenTelemetry's OTLP エクスポーター用のコレクターを起動します。
ホストエージェントで OpenTelemetry のデータに使用するポートを設定するには、ホストエージェントの configuration.yaml ファイルに以下のコードスニペットを追加してください:
com.instana.plugin.opentelemetry:
grpc:
port: 4317
http:
port: 4318
これらのポートは、環境変数 INSTANA_AGENT_OTEL_GRPC_PORT および を使用して設定 INSTANA_AGENT_OTEL_HTTP_PORT することもできます(デフォルト値は null です)。
レガシー版 OTLP gRPC ポート
4317)に加えて、オプションでレガシーポート(55680OTLP gRPC )を有効にすることができます。レガシーポートの動作は、エージェントのバージョンによって異なります:- 1.310.0: より前のバージョンのエージェント。このエージェントでは、デフォルトで両方のポート(
4317および55680)が有効になっています。 - エージェントのバージョン 1.310.0 以降:デフォルトでは、エージェントは標準ポート(
4317)のみを有効にします。
レガシーポートを制御するには、環境変数を使用してください INSTANA_AGENT_OTEL_GRPC_LEGACY_PORT_ENABLED。 有効にするには に true 、無効 false にするには に設定してください。
com.instana.plugin.opentelemetry:
grpc:
legacy_port_enabled: true
エクスポーターの設定
デフォルトでは、 Instana エージェントはローカルホストのIPアドレス( 127.0.0.1 )でリスニングするように設定されています。 以下のスニペットは、 OpenTelemetry コレクターがprotocolを使用して、テレメトリデータをローカルの OTLP/gRPCInstana ホストエージェントに転送するための典型的な設定例を示しています。
exporters:
otlp:
endpoint: localhost:4317
tls:
insecure: true
...
service:
pipelines:
traces:
receivers: [...]
processors: [...]
exporters: [..., otlp]
metrics:
receivers: [...]
processors: [...]
exporters: [..., otlp]
logs:
receivers: [...]
processors: [...]
exporters: [..., otlp]
- が有効
tls.insecure: falseになっているtls場合、値の先頭にendpointを付けますhttps://(例:https://*endpoint*)。 - が無効になっている
tls場合(tls.insecure: true)、値endpointの先頭に を付けることができますhttp://。 ただし、この設定ではhttp://を使用しないことをお勧めします。 - Instana SaaS サーバーが scheme
https://を使用する場合、クライアントのトランスポートセキュリティが有効になり、設定tls.insecure: trueが上書きされます。 詳細については、 OTLP gRPC Exporter を参照してください。 - に値を指定しない
tls.insecure場合、デフォルトで が有効になりますtls。
以下の例は、 OTLP/HTTP プロトコルを使用してテレメトリデータをローカルの Instana ホストエージェントに転送するための、 OpenTelemetry コレクターの一般的な設定を示しています。
exporters:
otlphttp:
endpoint: http://localhost:4318
...
service:
pipelines:
traces:
receivers: [...]
processors: [...]
exporters: [..., otlphttp]
metrics:
receivers: [...]
processors: [...]
exporters: [..., otlphttp]
logs:
receivers: [...]
processors: [...]
exporters: [..., otlphttp]
tls.insecure: true)、値 endpoint の先頭に を付けてください http://。 TLSが有効になっている場合(tls.insecure: false)、値 endpoint の先頭に を付ける https://。「 OpenTelemetry 」のデータを「 OTLP 」形式で、「 Kubernetes 」内の「 Instana 」エージェントに送信する
Kubernetes 上で「 Instana 」エージェントの「 Helm 」チャートを通じて提供される Instana エージェントサービスは、 OpenTelemetry サポートと組み合わせて利用する場合に役立ちます。 Instana エージェントサービスは、データが同じ Kubernetes ノード上で実行されている Instana エージェントに確実に転送されるよう支援します。 Instana エージェントサービスは、 Kubernetes のサービスであり、 Instana エージェントが実行されるPodのドメイン名として使用できます。
「 Helm 」チャートまたは 「Operator 」を使用して Instana ホストエージェントをインストールした場合、 Instana ホストエージェントにおける OpenTelemetry データの取り込みはデフォルトで有効になります。
デフォルトでは、 Instana エージェントは、 Kubernetes または
instana-agentRed Hat OpenShift クラスタのネームスペースにインストールされます。 という名前のinstana-agentKubernetes サービスを使用して、 Instana エージェントにアクセスします。 OTLP/gRPC のポートは 4317、 OTLP / HTTP のポートは 4318 です。# kubectl get service -n instana-agent NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE instana-agent ClusterIP 172.30.53.248 <none> 42699/TCP,55680/TCP,4317/TCP,4318/TCP 23d instana-agent-headless ClusterIP None <none> 42699/TCP,55680/TCP,4317/TCP,4318/TCP 23dKubernetes または Red Hat OpenShift クラスタ内の Instana エージェントの OTLP エンドポイントにアクセスするには、 Kubernetes サービスを使用できます。 たとえば、 OpenTelemetry のデータを OTLP/gRPC
http://instana-agent.instana-agent:4317エンドポイントに送信することができます。 あるいは、 OpenTelemetry のデータを、 OTLP / HTTP のinstana-agent.instana-agent:4318エンドポイントに送信することもできます。以下の設定例では、 OpenTelemetry コレクター を使用して、 OTLP/gRPC および OTLP / HTTP の両方のプロトコルでローカルの Instana ホストエージェントに接続しています:
exporters: otlp: endpoint: instana-agent.instana-agent:4317 tls: insecure: true otlphttp: endpoint: http://instana-agent.instana-agent:4318Instana エージェントのエンドポイントにアクセスする別の方法として、ホストのIPアドレスを直接使用する方法があります。 Kubernetes または Red Hat OpenShift クラスタでホストの IP アドレスを取得し、 OTLP/gRPC, のエンドポイントの完全なドメイン名を作成する方法については、以下の例を参照してください。
TRACER_EXPORTER_OTLP_ENDPOINTその完全なドメイン名は次のとおりです:env: - name: INSTANA_AGENT_HOST valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: TRACER_EXPORTER_OTLP_ENDPOINT value: http://$(INSTANA_AGENT_HOST):4317
OpenTelemetry へのデータ取り込みにおける TLS 暗号化の有効化
ホストエージェントで TLS 暗号化を有効にすると、 OpenTelemetry の取り込みエンドポイントに送信されるすべてのデータが TLS で暗号化されます。
詳細については、 「 TLS の暗号化を有効にする」 を参照してください。
複数のトレーサーによる互換性の問題を回避する
同じアプリケーションに対して複数のトレーサーが機能していると、競合や重複データが発生する可能性があります。 たとえば、 Instana エージェントは、 複数の Java エージェントが実行されている Java 仮想マシン(JVM)に対して、自動的に計測を行いません。