OpenTelemetry のデータを Instana エージェントに送信する

Instana エージェントは、 OTLP 形式の OpenTelemetry トレース、メトリクス、およびログを直接受信できます。 その後、 Instana エージェントはデータを Instana バックエンドに転送します。 以下の構成を実行します。

OpenTelemetry のデータ取り込みを有効にする

デフォルトでは、 Instana ホストエージェントにおける OpenTelemetry のデータ取り込み機能が有効になっています。

注: ホストエージェントのバージョンが 1.1.726 以降の場合、デフォルト設定が有効になります。 以前は、デフォルトは無効になっていました。

ホストエージェントで 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 ポート

下位互換性を確保するため、 Instana エージェントでは、標準ポート(4317)に加えて、オプションでレガシーポート(55680OTLP gRPC )を有効にすることができます。レガシーポートの動作は、エージェントのバージョンによって異なります:
  • 1.310.0: より前のバージョンのエージェント。このエージェントでは、デフォルトで両方のポート(4317 および 55680)が有効になっています。
  • エージェントのバージョン 1.310.0 以降:デフォルトでは、エージェントは標準ポート(4317)のみを有効にします。

レガシーポートを制御するには、環境変数を使用してください INSTANA_AGENT_OTEL_GRPC_LEGACY_PORT_ENABLED。 有効にするには に true 、無効 false にするには に設定してください。

あるいは、 configuration.yaml ファイルでレガシーポートを設定することもできます:
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が無効になっている場合(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のドメイン名として使用できます。

  1. 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   23d
  2. Kubernetes または Red Hat OpenShift クラスタ内の Instana エージェントの OTLP エンドポイントにアクセスするには、 Kubernetes サービスを使用できます。 たとえば、 OpenTelemetry のデータを OTLP/gRPChttp://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:4318

    Instana エージェントのエンドポイントにアクセスする別の方法として、ホストの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)に対して、自動的に計測を行いません。