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.
| Parameter | Type | Description |
|---|---|---|
| Credential Type | string | Specifies the authentication mechanism used by OTLP. One of the available options must be selected. |
| Noauth | option | Disables authentication. Requests can be sent to the OTLP endpoint without credentials. |
| BearerTokenAuth | option | Enables 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.
| Parameter | Type | Default Value | Description |
|---|---|---|---|
| protocol | string | grpc | Transport 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_endpoint | string | 0.0.0.0:4317 | host:port for the gRPC listener. Active when protocol = grpc. |
| http_endpoint | string | 0.0.0.0:4318 | host:port for the HTTP listener. Active when protocol = http. |
Advanced gRPC Configuration
| Parameter | Type | Default Value | Description |
|---|---|---|---|
| grpc_transport | string | none | Specifies the network transport protocol used by the gRPC server. |
| grpc_max_recv_msg_size_mib | int | 64 | Maximum gRPC message size accepted (MiB). Raise for large batches to avoid ResourceExhausted errors. |
| grpc_max_concurrent_streams | int | unlimited | Limits the number of active streams per connection. 0 = unlimited. |
| grpc_read_buffer_size | int (B) | 524288 | Per-connection read buffer in bytes. Default 512 KiB. |
| grpc_write_buffer_size | int (B) | 524288 | Per-connection write buffer in bytes. Default 512 KiB. |
| grpc_include_metadata | bool | false | Controls whether client metadata from incoming gRPC requests is included and propagated downstream. |
| enabled | bool | false | Enables or disables TLS encryption for gRPC connections. |
| min_version | string | none | Defines the minimum TLS version accepted for secure connections. Supports TLS 1.2 and above. |
| cert_file | string | none | Path to the TLS certificate file used by the server. |
| key_file | string | none | Path to the TLS private key file used by the server. |
| client_ca_file | string | none | Path to the client CA certificate file used to verify client certificates for mutual TLS (mTLS). |
| max_connection_idle | int | none | Closes connections that remain idle for too long. |
| max_connection_age | int | none | Sets the maximum lifetime of a connection. |
| max_connection_age_grace | int | none | Provides a grace period before closing an aged connection. |
| time | int | none | Interval for sending keepalive pings to verify if clients are still active. |
| timeout | int | none | Defines how long the server waits for a keepalive response before closing the connection. |
| min_time | int | none | Minimum allowed interval between client keepalive pings. |
| permit_without_stream | bool | false | Allows 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
| Parameter | Type | Default Value | Description |
|---|---|---|---|
| http_max_request_body_size | int (B) | 20971520 | Maximum HTTP request body in bytes. Default 20 MiB. |
| http_include_metadata | bool | false | Toggles whether client metadata from incoming requests is propagated to downstream consumers. |
| http_compression_algorithms | string | none | Accepted compression algorithm. Allowed values: none, gzip, zstd, zlib, snappy, deflate. |
| http_read_timeout | int (s) | 30 | Maximum duration for reading the entire request including the body. |
| http_write_timeout | int (s) | 30 | Maximum duration before timing out writes of the response. |
| http_idle_timeout | int (s) | 60 | Maximum amount of time to wait for the next request when keep-alives are enabled. |
| http_traces_url_path | string | /v1/traces | HTTP path that receives trace data. |
| http_metrics_url_path | string | /v1/metrics | HTTP path that receives metrics data. |
| http_logs_url_path | string | /v1/logs | HTTP path that receives log data. |
| enabled | bool | false | Enables or disables TLS encryption for HTTP connections. |
| min_version | string | none | Defines the minimum TLS version the server accepts for incoming HTTPS connections. Supports TLS 1.2 and above. |
| cert_file | string | none | Path to the TLS certificate file used by the server. |
| key_file | string | none | Path to the TLS private key file used by the server. |
| client_ca_file | string | none | Path to the client CA certificate file used for mutual TLS (mTLS) authentication. |
| allowed_origins | array[string] | none | Specifies which origins are allowed to send requests to the source. Wildcards may be used such as https://*.example.com. |
| allowed_headers | array[string] | none | Specifies which HTTP headers are allowed in incoming requests. |
| max_age | int | none | Defines 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
},
}