# HTTP 插桩配置

LLMS index: [llms.txt](/llms.txt)

---

## 捕获 HTTP 请求头和响应头 {#capturing-http-request-and-response-headers}

你可以配置代理，将预定义的 HTTP 头作为 Span 属性进行采集，
符合[语义规范](/docs/specs/semconv/http/http-spans/)。
使用以下属性来定义要采集的 HTTP 头：

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.client.capture-request-headers</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_REQUEST_HEADERS</code>
</details>

<span class="label">Description</span>:
以逗号分隔的 HTTP 头名称列表。
HTTP 客户端插桩将采集所有配置的头名称的 HTTP 请求头值。
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.client.capture-response-headers</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_RESPONSE_HEADERS</code>
</details>

<span class="label">Description</span>:
以逗号分隔的 HTTP 头名称列表。
HTTP 客户端插桩将采集所有配置的头名称的 HTTP 响应头值。
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.server.capture-request-headers</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_SERVER_CAPTURE_REQUEST_HEADERS</code>
</details>

<span class="label">Description</span>:
以逗号分隔的 HTTP 头名称列表。
HTTP 服务器插桩将采集所有配置的头名称的 HTTP 请求头值。
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.server.capture-response-headers</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_SERVER_CAPTURE_RESPONSE_HEADERS</code>
</details>

<span class="label">Description</span>:
以逗号分隔的 HTTP 头名称列表。
HTTP 服务器插桩将采集所有配置的头名称的 HTTP 响应头值。
</div>


这些配置选项受所有 HTTP 客户端和服务器插桩支持。

> **注意**：表中列出的属性、环境变量名称仍处于实验阶段，可能会发生变化。

## 采集 Servlet 请求参数 {#capturing-servlet-request-parameters}

你可以配置代理，使其为 Servlet API 处理的请求采集预定义的 HTTP 请求参数，并将这些参数作为 Span 属性。
使用以下属性来定义要采集的 Servlet 请求参数：

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.servlet.experimental.capture-request-parameters</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_SERVLET_EXPERIMENTAL_CAPTURE_REQUEST_PARAMETERS</code>
</details>

<span class="label">Description</span>:
以逗号分隔的请求参数名称列表。
</div>


> **注意**：表中列出的属性、环境变量名称仍处于实验阶段，可能会发生变化。

## 配置已知 HTTP 方法 {#configuring-known-http-methods}

配置插桩以识别一组替代的 HTTP 请求方法。
所有其他方法将被视为 `_OTHER`。

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.known-methods</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS</code>
</details>

<span class="label">Default</span>: CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE<br>
<span class="label">Description</span>:
以逗号分隔的已知 HTTP 方法列表。
</div>
 -->

## 启用实验性 HTTP 遥测功能 {#enabling-experimental-http-telemetry}

你可以配置代理，采集额外的实验性 HTTP 遥测数据。

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.client.emit-experimental-telemetry</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_CLIENT_EMIT_EXPERIMENTAL_TELEMETRY</code>
</details>

<span class="label">Default</span>: false<br>
<span class="label">Description</span>:
启用实验性 HTTP 客户端遥测功能。
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.http.server.emit-experimental-telemetry</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_HTTP_SERVER_EMIT_EXPERIMENTAL_TELEMETRY</code>
</details>

<span class="label">Default</span>: false<br>
<span class="label">Description</span>:
启用实验性 HTTP 服务器遥测功能。
</div>


对于客户端和服务器 Span，添加以下属性：

- `http.request.body.size` 和 `http.response.body.size`：分别表示请求和响应体的大小。

对于客户端指标，创建以下指标：

- [http.client.request.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestbodysize)
- [http.client.response.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpclientresponsebodysize)

对于服务器指标，创建以下指标：

- [http.server.active_requests](/docs/specs/semconv/http/http-metrics/#metric-httpserveractive_requests)
- [http.server.request.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestbodysize)
- [http.server.response.body.size](/docs/specs/semconv/http/http-metrics/#metric-httpserverresponsebodysize)
