OTLPレシーバー

OTLPレシーバーは、gRPCまたはHTTPでOTLPフォーマットのデータを受け取ります。

OTLP レシーバーを使用すると、Collector は OTLP 形式を使用して gRPC または HTTP でデータを受信できます。サポートされているパイプラインは tracesmetricslogs です。詳細については「パイプラインでデータを処理する」を参照してください。

OTLP フォーマットについての詳細は、OTel リポジトリの「OpenTelemetry Protocol Specification」を参照してください。

注: OTLP エクスポータについては、「OTLP エクスポータ」を参照してください。

はじめに

注: このコンポーネントは、Splunk Distribution of the OpenTelemetry Collector のデフォルト設定に含まれています。デフォルト設定について詳しくは「Helm で Collector for Kubernetes を設定する」、「Collector for Linux のデフォルト設定」、または「Collector for Windows のデフォルト設定」を参照してください。このドキュメントで説明されているように、いつでも設定をカスタマイズできます。

以下の手順に従って、コンポーネントの設定とアクティベーションを行ってください:

  1. Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします。「Get started: Understand and use the Collector」を参照してください。

  2. 次のセクションで説明するように、OTLP受信機を設定します。

  3. Collector を再起動します。

サンプル構成

OTLP レシーバーをアクティブにするには、以下の設定例のように、コレクター設定ファイルの receiversセクションに otlp を追加します:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: "${HOST_LISTEN_INTERFACE}:1234"
      http:
        endpoint: "${HOST_LISTEN_INTERFACE}:5678"

レシーバーがデータを受信する、endpoint または host:port を指定することができます。

  • endpoint のデフォルト値は 0.0.0.0:4317 for gRPCです

  • endpoint のデフォルト値は 0.0.0.0:4318 for HTTP です

有効なシンタックスについては、「gRPC Name Resolution」を参照してください。

次に、受信したいデータタイプの設定ファイルのサービスパイプラインのセクションに、レシーバーを追加します:

service:
  pipelines:
    traces:
      receivers: [otlp]
    metrics:
      receivers: [otlp]

高度な設定

ヘルパーファイルを使用して、自動的に追加機能を提供できます。詳細については 「Common configuration options」を参照してください。

Protobufペイロード

OTLPはgRPCとHTTPで実装され、ペイロードにはプロトコルバッファのスキーマを使います。

プロトコルバッファは、構造化データをシリアル化する非依存メカニズムです。データをどのように構造化したいかを一度定義すれば、あとは特別に生成されたソースコードを使って、さまざまな言語を使って構造化データを書いたり読んだりすることができます。

詳しくは「Protocol Buffers documentation」を参照してください。

OTLP/gRPC の操作

gRPC を使用する場合、基礎となる gRPC トランスポートを確立した後、OTLP レシーバーはテレメトリデータを含む要求を継続的に受信し始め、各要求に応答する必要があります。詳細については、OTLP/gRPC 仕様にある公式の OpenTelemetry ドキュメントを参照してください。これには、要求、応答、および OTLP/gRPC スロットリングに関する詳細が含まれます。

OTLP/HTTP の操作

HTTP を使用する場合、Protobuf ペイロードをバイナリまたは JSON 形式でエンコードできます。OTLP/HTTP は、HTTP POST リクエストを使用してテレメトリデータをレシーバーに送信します。詳細については、OTLP/HTTP 仕様にある公式の OpenTelemetry ドキュメントを参照してください。これには、エンコーディング、要求、応答、およびスロットリングに関する詳細が含まれます。

OTLP/HTTP 設定は、traces_url_pathmetrics_url_pathlogs_url_path の設定も提供し、シグナルデータを送信する必要がある URL パスをシグナルタイプごとに変更できるようにします。これらのデフォルトは、それぞれ /v1/traces/v1/metrics/v1/logs です。

HTTPでトレースを書き込むには、[address]/[traces_url_path] (トレース用)、[address]/[metrics_url_path] (メトリクス用)、[address]/[logs_url_path] (ログ用)にPOSTします。

OTLP/HTTP エクスポーターでの作業

このコンポーネントとの通信に otlphttpexporter ピアを使用する場合は、otlphttpexportertraces_endpointmetrics_endpointlogs_endpoint の各設定を使用して、otlpreceiver のアドレスと URL シグナルパスに一致する適切な URL を設定します。

詳しくは「OTLP/HTTP エクスポータ」を参照してください。

クロスオリジン リソース シェアリング(CORS)の使用

HTTP エンドポイントは、オプションで cors: の下で CORS を設定することもできます:

  • allowed_origins を使って、どのオリジン(またはワイルドカードパターン)からのリクエストを許可するかを指定します。

  • デフォルトのセーフリスト以外のリクエストヘッダーを許可するには、allowed_headers を設定します。

  • max_age を設定して、プリフライトリクエストに対するレスポンスをキャッシュするようにブラウザに指示します。

詳細については、https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS を参照してください。

以下のサンプル設定を参照してください:

receivers:
  otlp:
    protocols:
      http:
        endpoint: "localhost:4318"
        cors:
          allowed_origins:
            - http://test.com
            # Origins can have wildcards with *, use * by itself to match any origin.
            - https://*.example.com
          allowed_headers:
            - Example-Header
          max_age: 7200

設定

次の表は、OTLPレシーバーの設定オプションを示しています:

同梱

https://raw.githubusercontent.com/splunk/collector-config-tool/main/cfg-metadata/receiver/otlp.yaml

トラブルシューティング

__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

  • ___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________

  • ____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______