OpenTelemetry のデータを Instana バックエンドに送信する

テレメトリデータは、 OTLP 形式で、アプリケーションやシステムから直接 Instana のバックエンドに送信できます。 以下の構成を実行します。

注: OpenTelemetry Collectorの Instana ディストリビューション( IDOT ) をご利用の場合は、手動設定の手順に従う必要はありません。 IDOT デフォルトでは、エンドポイント、認証キー、リソース属性、 TLS の設定など、必要なすべての設定が自動的に構成されます。 手動での設定が必要なのは、独自の OpenTelemetry コレクターを設定して、 Instana バックエンドにデータを送信する場合のみです。

前提条件

  • バックエンド otlp-acceptor コンポーネントの特殊なエンドポイントは、 OpenTelemetry データの送信時に使用されます。

    以下の設定例では、 OpenTelemetry コレクター を使用して、 Instanaotlp-acceptor バックエンドコンポーネントに接続しています:
    exporters:
      otlp:
        endpoint: ${INSTANA_OTLP_GRPC_BACKEND}:4317
        headers:
          x-instana-key: xxxxxxx

    に付加された値 https:// は、安全な接続 otlp. endpoint が使用されていることを示しています。 tls が設定されていない場合、デフォルトで有効になります。 詳細については、 OtlpExporter Setting を参照してください。

  • 検証を行うには、必要な Instana エージェントキーを設定する必要があります。 Instana バックエンドをターゲットにするには、x-instana-key フィールドに Instana のエージェントキーを設定してください。

必要なリソース属性または環境変数の作成

Instana のバックエンドでは、 faas.id、または device.idhost.id のリソース属性が必要です。 あるいは、x-instana-hostを環境変数として設定することもできます。 Instana 属性 host.id を使用してホストを一意に識別し、 OpenTelemetry エンティティを正しいホストに関連付けます。 以下の情報を host.id 、次の2つの方法で提供できます:

  • OpenTelemetry SDK を使用する(コンテナ化されていないシステムでの使用を推奨)

    OpenTelemetry には、に関する標準的な意味論的 host.id規約があります。 ほとんどの OpenTelemetry SDKは、コンテナ化されていないシステムにおけるリソース host.id 属性の収集に対応しています。 OpenTelemetryhost.id のSDKを通じてデータを提供すると、 Instana は、 OpenTelemetry のエンティティを Instana のインフラストラクチャ監視における対応するホストにシームレスに紐付けることができます。

  • Instanahost.id のUIから取得することで

    Instanahost.id のUIでこれを確認するには、 「Infrastructure 」>「 Analyze Infrastructure」 に移動してください。 「エンティティの種類」 の下に表示されている 「ホスト」 をクリックします。 リストから目的のホストをクリックして、詳細を表示してください。 「システム」 の下に、 ホストID が表示されます。 OpenTelemetry のリソース属性でこれを手動で設定すると、 Instanahost.id は OpenTelemetry エンティティを、 Instana インフラストラクチャ監視の対応するホストにリンクします。

OpenTelemetry コレクターが Daemonset モードでデプロイされている場合、 OpenTelemetry コレクターは、 OpenTelemetry データを送信するアプリケーションの同じホストに配置されます。 OTLPx-instana-host エクスポーターを使用してヘッダーを設定することもできます。

exporters:
  otlp:
    endpoint: ${INSTANA_OTLP_GRPC_BACKEND}:4317
    headers:
      x-instana-key: xxxxxxx
      x-instana-host: xxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK
注: に追加された値 https:// は、セキュアな接続 otlp. endpoint が使用されていることを示しています。 tls が設定されていない場合、デフォルトで有効になります。 詳細については、「 OtlpExporter」の設定を参照してください。
  • Instana バックエンドをターゲットにするため、 Instanax-instana-key エージェントのエージェントキーをフィールドに設定します。
  • ホスト名フィールド x-instana-host に、 OpenTelemetry コレクターを実行しているホストの名前である「 ${host.name}」という値を設定します。 host.name は、設定ファイル processors.resource.attributes、または OpenTelemetry SDK内にあります。 host.name が設定されていない場合は、環境変数(例:`hostname` や `PATH` HOST など HOSTNAME )からホスト名を設定するか、手動で設定することができます。
  • Instanaotlp-acceptor バックエンドのコンポーネントの正しいドメイン名を、この endpoint フィールドに設定してください。
  • Instana で使用される OTLP のポート番号に関する詳細については、 「ポート番号」 を参照してください。

Instana のセルフホスト環境の設定

Instana のセルフホスト版では、ポート443が および OTLP/HTTP OTLP/gRPC プロトコルに使用されます。 以下のドメイン・ネームがプロトコルに使用されます。

otlp-grpc.<base_domain> ( OTLP/gRPC otlp-http.<base_domain> for OTLP/HTTP の場合)

OpenTelemetry のデータを Instana バックエンドに送信するには、以下の手順を実行してください:

  1. Instana のバックエンドにおいて、` DNS ` ディレクトリ内に `component` otlp-acceptor コンポーネント用のエントリが 2 otlp-http.<base_domain> つ(および otlp-grpc.<basedomain> )作成されていることを確認してください。

  2. 「 OTLP 」エクスポーターを 「 OpenTelemetry 」コレクター で使用できるように設定し、以下のいずれかの手順を実行してください:

    • OTLP 認証確認済みの輸出業者:

      1. 自己ホスト型 instana から CA ファイルを取得します。

        • 自己ホスト型 Standard Edition の場合:
          kubectl get secret instana-tls -n instana-core -o jsonpath='{.data.ca\.crt}'|base64 -d > ca.crt
        • 自己ホスト型のカスタム・エディションの場合、openssl コマンドによって証明書が生成されます。
          kubectl get secret instana-tls -n instana-core -o jsonpath='{.data.tls\.crt}'|base64 -d > tls.crt
      2. ca.crt を OpenTelemetry コレクター環境の場所にコピーします。

        exporters:
          otlp:
            endpoint: https://otlp-grpc.<base_domain>:443
            tls:
              insecure: false
              ca_file: <path_to_cert_file>/<cert_file_name>
            headers:
              x-instana-key: xxxxxx
              x-instana-host: xxxxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK
    • OTLP 認証確認のない輸出業者:

      exporters:
         otlp:
           endpoint: https://otlp-grpc.<base_domain>:443
           tls:
             insecure: false
             insecure_skip_verify: true
           headers:
             x-instana-key: xxxxxx
             x-instana-host: xxxxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK

OpenTelemetry コレクターを使用して、テレメトリデータを Instana バックエンドに転送する

OpenTelemetry のデータを Instana バックエンドに転送するには、以下の手順を実行してください:

  1. Instana のデプロイメントリージョンを特定してください。 Instana バックエンドのエンドポイントは、デプロイ先のリージョンによって異なります。 ご使用の環境専用の Instana リージョンを見つけるには、 Instana のUIで、ナビゲーションメニューから [その他] > [ Instana について ]をクリックしてください。 「 Instana 」ダイアログが表示されます。 ダイアログに Instana のデプロイメントリージョンが表示されます。

    Instana の各環境( SaaS )には、 redbluegreenorangeや、や coral、といった特定のリージョン名が関連付けられています。 Instana バックエンドのエンドポイントに関する詳細については、「 otlp-acceptorInstana バックエンド otlp-acceptor のエンドポイント」 を参照してください。

  2. Instana バックエンドへの または OTLP/HTTP 接続 OTLP/gRPC を設定します。 たとえば、 Instanablue 環境を使用している場合、以下の設定を使用して、 OTLP/gRPCInstanaOTLP/HTTP バックエンドへの接続を設定できます

    • OTLP/gRPC

      exporters:
        otlp:
          endpoint: otlp-blue-saas.instana.io:4317
          headers:
            x-instana-key: xxxx
      ...
      service:
        pipelines:
          traces:
            receivers: [...]
            processors: [...]
            exporters: [..., otlp]
          metrics:
            receivers: [...]
            processors: [...]
            exporters: [..., otlp]
          logs:
            receivers: [...]
            processors: [...]
            exporters: [..., otlp]

      Instana バックエンドをターゲットにするため、 Instanax-instana-key エージェントのエージェントキーをフィールドに設定します。

    • OTLP/HTTP

      exporters:
        otlphttp:
          endpoint: https://otlp-blue-saas.instana.io:4318
          headers:
            x-instana-key: xxxx
      ...
      service:
        pipelines:
          traces:
            receivers: [...]
            processors: [...]
            exporters: [..., otlphttp]
          metrics:
            receivers: [...]
            processors: [...]
            exporters: [..., otlphttp]
          logs:
            receivers: [...]
            processors: [...]
            exporters: [..., otlphttp]

リソース属性の設定

Instana のバックエンドでは、 faas.id、または device.idhost.id のリソース属性が必要です。 あるいは、ホスト名を指す環境変数として x-instana-host 設定することもできます。

OpenTelemetry コレクターが DaemonSet モードでデプロイされている場合、つまり、 OpenTelemetry コレクターが OpenTelemetry データを送信するアプリケーションと同じホスト上に配置されている場合は、 OTLPx-instana-host エクスポーターを使用してヘッダーを設定できます。 以下の例を参照してください。

exporters:
  otlp:
    endpoint: otlp-blue-saas.instana.io:4317
    headers:
      x-instana-key: xxxxxxx
      x-instana-host: xxxx // or use ${host.name} if set in the configuration files processors.resource.attributes or in the OpenTelemetry SDK
注: アプリケーションまたはシステムに, host.id, faas.id, または device.id host.nameリソース属性が定義されていない場合は、 x-instana-host フィールドにホスト名を指定する必要があります。 Instanahost.name のUIでこれを確認するには、 「インフラストラクチャの分析 」>「 ホスト」 に移動してください。 リストから必要なホストを選択して、詳細を表示してください。 「システム」 の下に、 「ホスト名」 があります。

resource host.name 属性を追加するには、以下の resource プロセッサを使用します:

processors:
  resource:
    attributes:
    - key: host.name
      action: upsert
      value: "myhost1.ibm.com"

エージェントconfiguration.yamlファイルのすべての設定変更を完了したら、OpenTelemetry コレクターを使用するために次のコマンドを実行します:

otelcol-contrib --config configuration.yaml

Instana バックエンド「otlp-acceptor」のエンドポイント

以下の表には、さまざまな Instana および SaaS 環境における Instanaotlp-acceptor バックエンドのドメイン名が表示されています。 Instana SaaS 環境の詳細については、 「 OpenTelemetry Collector を使用した OpenTelemetry との連携」 を参照してください。

Instana SaaS 環境 otlp-accepter のドメイン名
青色 gRPC: otlp-grpc-blue-saas.instana.io:443

HTTP: https://otlp-http-blue-saas.instana.io:443

レッド gRPC: otlp-grpc-red-saas.instana.io:443

HTTP: https://otlp-http-red-saas.instana.io:443

グリーン gRPC: otlp-grpc-green-saas.instana.io:443

HTTP: https://otlp-http-green-saas.instana.io:443

オレンジ gRPC: otlp-grpc-orange-saas.instana.io:443

HTTP: https://otlp-http-orange-saas.instana.io:443

コーラル gRPC: otlp-grpc-coral-saas.instana.io:443

HTTP: https://otlp-http-coral-saas.instana.io:443

ティール gRPC: otlp-grpc-teal-saas.instana.io:443

HTTP: https://otlp-http-teal-saas.instana.io:443

ミズ gRPC: otlp-grpc-mizu-saas.instana.io:443

HTTP: https://otlp-http-mizu-saas.instana.io:443

カボチャ gRPC: otlp-grpc-pumpkin-saas.instana.io:443

HTTP: https://otlp-http-pumpkin-saas.instana.io:443

黄色 gRPC: otlp-grpc-yellow-saas.instana.io:443

HTTP: https://otlp-http-yellow-saas.instana.io:443

エメラルド gRPC: otlp-grpc-emerald-saas.instana.io:443

HTTP: https://otlp-http-emerald-saas.instana.io:443

注:SaaS 環境における Instana バックエンドのotlp-acceptorのすべてのエンドポイントは、 TLS が有効になっています。
注:Red Hat OpenShift プラットフォームを Instana Self-Hosted Custom Editionと併用している際にエンドポイント接続エラーが発生した場合は、 Red Hat OpenShift でルートを手動で作成する必要があります。 ルート作成の詳細については、 Red Hat OpenShift の「 Instana バックエンドでのエンドポイントの設定 」を参照してください。 ルートの作成は自動では行われません。