HTTPを設定する

HTTPは、Collectorの個々のレシーバーまたはエクスポーター内で調整できるさまざまな設定を公開しています。

HTTPクライアントを設定する

エクスポータで HTTP クライアントを設定するには、以下を実行してください。

注: クライアント設定では TLS がサポートされます。詳しくは「Configure TLS」を参照してください。
  • endpointします。この接続のアドレスとポート

  • tlsします。「Configure TLS」を参照してください。

  • headersします。HTTP リクエストヘッダーに追加される名前と値のペア

    • Content-LengthやConnectionのような特定のヘッダーは、必要に応じて自動的に書き込まれます。

    • Host ヘッダーは、エンドポイント値から自動的に導出されます。しかしこの自動割り当ては、Hostフィールドを headers フィールドに明示的に設定することで上書きできます。

    • Host ヘッダーが提供されている場合、RequestHost フィールドが上書きされます。詳細については、「Go のリクエスト」を参照してください。

  • read_buffer_size

  • timeout

  • write_buffer_size

  • compressionします。使用する圧縮タイプ

    • 圧縮タイプの有効な値は、deflategzipsnappyzlibzstdnone です。

    • 圧縮が none に設定されている場合、すべてのデータは非圧縮として扱われ、それ以外の入力はエラーとなります。

  • max_idle_conns

  • max_idle_conns_per_host

  • max_conns_per_host

  • idle_conn_timeout

  • authします。「Configure authentication」を参照してください。

  • disable_keep_alives

  • http2_read_idle_timeout

  • http2_ping_timeout

  • cookies

    • [enabled] として登録されます。有効にすると、クライアントはサーバーのレスポンスからクッキーを保存し、以降のリクエストで再利用します。

    • 詳細については、「Go の CookieJar タイプ」を参照してください。

例:

exporter:
  otlphttp:
    endpoint: otelcol2:55690
    auth:
      authenticator: some-authenticator-extension
    tls:
      ca_file: ca.pem
      cert_file: cert.pem
      key_file: key.pem
    headers:
      test1: "value1"
      "test 2": "value 2"
    compression: zstd
    cookies:
      enabled: true

HTTP サーバーを設定する

HTTP サーバーを Collector レシーバで設定するには、以下を実行してください。

  • corsします。レシーバが異なるオリジンでホストされている場合でも、レシーバがウェブブラウザからのトレースを受け付けるように CORS を設定します。

    • 空白のままか、null に設定されている場合、CORSは有効ではありません。

    • CORS パラメータのリストを参照してください。

      • allowed_originsします。受信者に要求を送信できる送信元のリスト。送信元には、0 文字以上を置き換えるワイルドカード * を含めることができます。任意の発信元を許可するには、["*"]を設定します。発信元がリストされていない場合、CORS は有効になりません。

      • allowed_headersします。デフォルトのセーフリスト外のヘッダーを CORS 要求に含めることを許可します。デフォルトでは、セーフリストヘッダーと X-Requested-With が許可されます。すべてのリクエストヘッダーを許可するには、["*"] に設定します。

      • max_ageします。 Access-Control-Max-Age ヘッダーの値を設定して、クライアントが CORS プリフライト要求への応答をキャッシュできるようにします。設定されていない場合、ブラウザはデフォルトの 5 秒を使用します。詳しくは「Access-Control-Max-Age」をご確認ください。

  • endpoint

  • max_request_body_sizeします。デフォルトは 20971520(20MiB)です。1 回のリクエストで許可されるボディの最大サイズをバイト数で設定します。

  • compression_algorithms

  • tlsします。「Configure TLS」を参照してください。

  • authします。「Configure authentication」を参照してください。

    • request_paramsします。HTTP ヘッダーとともに認証コンテキストに追加するクエリパラメータ名のリスト。

注: カスタムキーを使用して Attributes processor を有効にして任意の http ヘッダーを付加できます。また、"include_metadata" を有効にする必要があります。

例:

receivers:
  otlp:
    protocols:
      http:
        include_metadata: true
        auth:
          request_params:
          - token
          authenticator: some-authenticator-extension
        cors:
          allowed_origins:
            - https://foo.bar.com
            - https://*.test.com
          allowed_headers:
            - Example-Header
          max_age: 7200
        endpoint: 0.0.0.0:55690
        compression_algorithms: ["", "gzip"]

processors:
  attributes:
    actions:
      - key: http.client_ip
        from_context: X-Forwarded-For
        action: upsert

さらに詳しく

利用可能な設定について、詳しくは OpenTelemetry の GitHub レポジトリより「HTTP Configuration Settings」をご確認ください。