Skip to main content

OTLP

Overview

OTLP lets you receive data via gRPC or HTTP protocols using the OTLP format. It accepts data exported from various OTLP exporters and serves as the gateway among many agents.

Supported platforms

  • Linux: Logs · Metrics · Traces
  • Windows: Logs · Metrics · Traces
  • macOS: Logs · Metrics · Traces

Authentication

OTLP supports optional authentication to control access to telemetry ingestion endpoints.

Authentication is configured using the Credential Type field.

ParameterTypeDescription
Credential TypestringSpecifies the authentication mechanism used by OTLP. One of the available options must be selected.
NoauthoptionDisables authentication. Requests can be sent to the OTLP endpoint without credentials.
BearerTokenAuthoptionEnables bearer token authentication.

Note: The Credential Type field is required. If you do not use authentication, select Noauth to disable it explicitly.

Basic Configuration

Basic configuration selects the transport protocol and the network endpoint where OTLP listens for incoming telemetry data.

ParameterTypeDefault ValueDescription
protocolstringgrpcTransport to listen on. One of grpc or http. (Legacy enable_grpc / enable_http booleans are still accepted by the collector for backward compatibility but new pipelines should set protocol.)
grpc_endpointstring0.0.0.0:4317host:port for the gRPC listener. Active when protocol = grpc.
http_endpointstring0.0.0.0:4318host:port for the HTTP listener. Active when protocol = http.

Advanced gRPC Configuration

ParameterTypeDefault ValueDescription
grpc_transportstringnoneSpecifies the network transport protocol used by the gRPC server.
grpc_max_recv_msg_size_mibint64Maximum gRPC message size accepted (MiB). Raise for large batches to avoid ResourceExhausted errors.
grpc_max_concurrent_streamsintunlimitedLimits the number of active streams per connection. 0 = unlimited.
grpc_read_buffer_sizeint (B)524288Per-connection read buffer in bytes. Default 512 KiB.
grpc_write_buffer_sizeint (B)524288Per-connection write buffer in bytes. Default 512 KiB.
grpc_include_metadataboolfalseControls whether client metadata from incoming gRPC requests is included and propagated downstream.
enabledboolfalseEnables or disables TLS encryption for gRPC connections.
min_versionstringnoneDefines the minimum TLS version accepted for secure connections. Supports TLS 1.2 and above.
cert_filestringnonePath to the TLS certificate file used by the server.
key_filestringnonePath to the TLS private key file used by the server.
client_ca_filestringnonePath to the client CA certificate file used to verify client certificates for mutual TLS (mTLS).
max_connection_idleintnoneCloses connections that remain idle for too long.
max_connection_ageintnoneSets the maximum lifetime of a connection.
max_connection_age_graceintnoneProvides a grace period before closing an aged connection.
timeintnoneInterval for sending keepalive pings to verify if clients are still active.
timeoutintnoneDefines how long the server waits for a keepalive response before closing the connection.
min_timeintnoneMinimum allowed interval between client keepalive pings.
permit_without_streamboolfalseAllows keepalive pings when no active streams exist. If enabled, idle health checks are allowed. If disabled, pings occur only during active traffic.

Advanced HTTP Configuration

ParameterTypeDefault ValueDescription
http_max_request_body_sizeint (B)20971520Maximum HTTP request body in bytes. Default 20 MiB.
http_include_metadataboolfalseToggles whether client metadata from incoming requests is propagated to downstream consumers.
http_compression_algorithmsstringnoneAccepted compression algorithm. Allowed values: none, gzip, zstd, zlib, snappy, deflate.
http_read_timeoutint (s)30Maximum duration for reading the entire request including the body.
http_write_timeoutint (s)30Maximum duration before timing out writes of the response.
http_idle_timeoutint (s)60Maximum amount of time to wait for the next request when keep-alives are enabled.
http_traces_url_pathstring/v1/tracesHTTP path that receives trace data.
http_metrics_url_pathstring/v1/metricsHTTP path that receives metrics data.
http_logs_url_pathstring/v1/logsHTTP path that receives log data.
enabledboolfalseEnables or disables TLS encryption for HTTP connections.
min_versionstringnoneDefines the minimum TLS version the server accepts for incoming HTTPS connections. Supports TLS 1.2 and above.
cert_filestringnonePath to the TLS certificate file used by the server.
key_filestringnonePath to the TLS private key file used by the server.
client_ca_filestringnonePath to the client CA certificate file used for mutual TLS (mTLS) authentication.
allowed_originsarray[string]noneSpecifies which origins are allowed to send requests to the source. Wildcards may be used such as https://*.example.com.
allowed_headersarray[string]noneSpecifies which HTTP headers are allowed in incoming requests.
max_ageintnoneDefines how long browsers cache CORS preflight responses.

Example Configuration

{
"protocol": "grpc", // "grpc" or "http"
"grpc_endpoint": "0.0.0.0:4317", // default
"http_endpoint": "0.0.0.0:4318", // default

//grpc advanced configuration

"grpc_transport": "", // default: none
"grpc_max_recv_msg_size_mib": 0, // default: none
"grpc_max_concurrent_streams": 0, // default: none
"grpc_read_buffer_size": 0, // default: none
"grpc_write_buffer_size": 0, // default: none
"grpc_include_metadata": false, // default: none

"grpc_tls": {
"enabled": false, // default: false
"min_version": "", // default: none
"cert_file": "", // default: none
"key_file": "", // default: none
"client_ca_file": "", // default: none
},

"grpc_keepalive": {
"server_parameters": {
"max_connection_idle": 0, // default: none
"max_connection_age": 0, // default: none
"max_connection_age_grace": 0, // default: none
"time": 0, // default: none
"timeout": 0, // default: none
},
"enforcement_policy": {
"min_time": 0, // default: none
"permit_without_stream": false, // default: none
},
},

// HTTP advanced configuraiton

"http_max_request_body_size": 0, // default: none
"http_include_metadata": false, // default: none
"http_idle_timeout": 0, // default: none
"http_read_timeout": 0, // default: none
"http_write_timeout": 0, // default: none
"http_traces_url_path": "", // default: none
"http_metrics_url_path": "", // default: none
"http_logs_url_path": "", // default: none

"http_compression_algorithms": "", // default: ""
"http_tls": {
"enabled": false, // default: false
"min_version": "", // default: none
"cert_file": "", // default: none
"key_file": "", // default: none
"client_ca_file": "", // default: none
},

"http_cors": {
"allowed_origins": [], // default: none
"allowed_headers": [], // default: none
"max_age": 0, // default: none
},
}