I am opening this PR as a copy of #13620 --------- Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| internal | ||
| testdata | ||
| xconfighttp | ||
| Makefile | ||
| README.md | ||
| client_middleware_test.go | ||
| clientinfohandler.go | ||
| clientinfohandler_test.go | ||
| compress_readcloser.go | ||
| compress_readcloser_test.go | ||
| compression.go | ||
| compression_test.go | ||
| compressor.go | ||
| compressor_test.go | ||
| confighttp.go | ||
| confighttp_example_test.go | ||
| confighttp_test.go | ||
| doc.go | ||
| go.mod | ||
| go.sum | ||
| package_test.go | ||
| server_middleware_test.go | ||
README.md
HTTP Configuration Settings
HTTP exposes a variety of settings. Several of these settings are available for configuration within individual receivers or exporters.
Client Configuration
Exporters leverage client configuration.
Note that client configuration supports TLS configuration, the
configuration parameters are also defined under tls like server
configuration. For more information, see configtls
README.
endpoint: address:porttlsheaders: name/value pairs added to the HTTP request headers- certain headers such as Content-Length and Connection are automatically written when needed and values in Header may be ignored.
Hostheader is automatically derived fromendpointvalue. However, this automatic assignment can be overridden by explicitly setting the Host field in the headers field.- if
Hostheader is provided then it overridesHostfield in Request which results as an override ofHostheader value.
read_buffer_sizetimeoutwrite_buffer_sizecompression: Compression type to use amonggzip,zstd,snappy,zlib,deflate, andlz4.- look at the documentation for the server-side of the communication.
nonewill be treated as uncompressed, and any other inputs will cause an error.
compression_params: Configure advanced compression optionslevel: Configure compression level forcompressiontype- The following are valid combinations of
compressionandlevelgzip- BestSpeed:
1 - BestCompression:
9 - DefaultCompression:
-1
- BestSpeed:
zlib- BestSpeed:
1 - BestCompression:
9 - DefaultCompression:
-1
- BestSpeed:
deflate- BestSpeed:
1 - BestCompression:
9 - DefaultCompression:
-1
- BestSpeed:
zstd- SpeedFastest:
1 - SpeedDefault:
3 - SpeedBetterCompression:
6 - SpeedBestCompression:
11
- SpeedFastest:
snappyNo compression levels supported yetx-snappy-framed(When feature gateconfighttp.framedSnappyis enabled) No compression levels supported yet
max_idle_connsmax_idle_conns_per_hostmax_conns_per_hostidle_conn_timeoutauthdisable_keep_alivesforce_attempt_http2http2_read_idle_timeouthttp2_ping_timeoutcookies- [
enabled] if enabled, the client will store cookies from server responses and reuse them in subsequent requests.
- [
middlewares
Example:
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: gzip
compression_params:
level: 1
cookies:
enabled: true
Server Configuration
Receivers leverage server configuration.
cors: Configure CORS, allowing the receiver to accept traces from web browsers, even if the receiver is hosted at a different origin. If left blank or set tonull, CORS will not be enabled.allowed_origins: A list of origins allowed to send requests to the receiver. An origin may contain a wildcard (*) to replace 0 or more characters (e.g.,https://*.example.com). Do not use a plain wildcard["*"], as our CORS response includesAccess-Control-Allow-Credentials: true, which makes browsers to disallow a plain wildcard (this is a security standard). To allow any origin, you can specify at least the protocol, for example["https://*", "http://*"]. If no origins are listed, CORS will not be enabled.allowed_headers: Allow CORS requests to include headers outside the default safelist. By default, safelist headers andX-Requested-Withwill be allowed. To allow any request header, set to["*"].max_age: Sets the value of theAccess-Control-Max-Ageheader, allowing clients to cache the response to CORS preflight requests. If not set, browsers use a default of 5 seconds.
endpoint: Valid value syntax available heremax_request_body_size: configures the maximum allowed body size in bytes for a single request. Default:20971520(20MiB)compression_algorithms: configures the list of compression algorithms the server can accept. Default: ["", "gzip", "zstd", "zlib", "snappy", "deflate", "lz4"]x-snappy-framedcan be used if feature gateconfighttp.snappyFramedis enabled.
tlsauthrequest_params: a list of query parameter names to add to the auth context, along with the HTTP headers
middlewares
You can enable attribute processor to append any http header to span's attribute using custom key. You also need to enable the "include_metadata"
Example:
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: metadata.x-forwarded-for
action: upsert