Skip to main content

OTLP

Overview

OTLP sends telemetry data to a remote endpoint using the OpenTelemetry Protocol (OTLP). It supports both HTTP and gRPC transport protocols.

Supported types: Logs · Metrics · Traces

Authentication

OTLP supports optional authentication.

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.
Oauth2optionThe OAuth2 Extension provides OAuth2 client credentials authentication for outbound HTTP and gRPC requests from this destination by automatically obtaining and refreshing access tokens.

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

Protocol

Specifies the transport protocol used to send telemetry data from this destination.

ParameterTypeDefaultDescription
protocolstringgrpcSpecifies the transport protocol used to send telemetry data. Supported values: grpc, http.

gRPC Configuration

ParameterTypeDefaultDescription
grpc_endpointstringnoneHost and port of the downstream OTLP gRPC endpoint where telemetry data is sent.
grpc_compressionstringnoneCompression algorithm used for gRPC requests to reduce payload size during transmission.
grpc_timeoutintegernoneMaximum time in seconds to wait for a gRPC request to complete before timing out.
grpc_headersobjectnoneCustom key-value headers included with gRPC requests sent to the endpoint.

HTTP Configuration

ParameterTypeDefaultDescription
http_endpointstringnoneBase URL of the downstream OTLP HTTP endpoint where telemetry data is sent.
http_traces_endpointstringnoneCustom endpoint URL used specifically for sending trace data.
http_logs_endpointstringnoneCustom endpoint URL used specifically for sending log data.
http_metrics_endpointstringnoneCustom endpoint URL used specifically for sending metric data.
http_compressionstringnoneCompression algorithm applied to HTTP requests to reduce payload size.
http_timeoutintegernoneMaximum time to wait for an HTTP request to complete before timing out.
http_headersobjectnoneCustom key-value headers included with requests sent to the endpoint.

Note

  • When TLS is not enabled, the HTTP endpoint should use the http scheme. endpoint: http://0.0.0.0:4318
  • When TLS is enabled, the HTTP endpoint must use the https scheme and TLS configuration must be provided. endpoint: https://0.0.0.0:4318
  • The sending queue and retry on failure are enabled by default .

gRPC Advanced Configuration

ParameterTypeDefaultDescription
grpc_sending_queueobjectenabled by defaultEnables an internal sending queue to buffer telemetry data before it is sent to the endpoint.
grpc_retry_on_failurebooltrueAutomatically retries failed gRPC send attempts.
grpc_tls.enabledbooltrueEnables TLS encryption for gRPC connections.
grpc_tls.insecurebooltrueAllows TLS connections without verifying the server certificate.
timeintegernoneInterval between keepalive pings sent to maintain the connection.
timeoutintegernoneMaximum time to wait for a ping acknowledgment before closing the connection.
permit_without_streamboolfalseAllows keepalive pings even when there are no active streams.
grpc_read_buffer_sizeintegernoneSize of the read buffer used by the gRPC client.
grpc_write_buffer_sizeintegernoneSize of the write buffer used by the gRPC client.
grpc_authoritystringnoneValue used for the :authority header in gRPC connections.
grpc_balancer_namestringnoneLoad balancing policy name used by the gRPC client.

HTTP Advanced Configuration

ParameterTypeDefaultDescription
http_sending_queueobjectenabled by defaultEnables an internal sending queue to buffer telemetry data before it is sent to the endpoint.
http_retry_on_failurebooltrueAutomatically retries failed HTTP send attempts.
enabledbooltrueEnables TLS encryption for HTTP connections.
insecurebooltrueAllows TLS connections without verifying the server certificate.
http_read_buffer_sizeintegernoneSize of the buffer used for reading HTTP responses.
http_write_buffer_sizeintegernoneSize of the buffer used for writing HTTP requests.

Sending Queue

ParameterTypeDefaultDescription
num_consumersinteger20Number of parallel workers that read from the queue and send requests to the destination. Default raised from 10 in v0.3.
queue_sizeinteger10000Maximum number of requests that can be stored in the queue before new data is dropped or blocked. Default raised from 5000 in v0.3.
enable_disk_backed_queuebooltrueStores queued data on disk so telemetry data can be preserved across service restarts.

Retry On Failure Configuration

The Retry On Failure option enables automatic retry logic when OTLP fails to send telemetry data.

When enabled, the destination temporarily retains the telemetry batch and attempts to resend it based on the configured retry intervals.

ParameterTypeDefault ValueDescription
initial_intervalduration5Time to wait after the first failure before retrying.
max_intervalduration30Upper bound on retry backoff interval. Once this value is reached the delay between consecutive retries remains constant at the specified value.
max_elapsed_timeduration300Maximum amount of time spent retrying a failed batch. Retrying never stops if set to 0.
randomization_factorfloat0.7Jitter applied to each backoff to spread retries across a fleet. Added in v0.3.
multiplierfloat1.3Backoff multiplier between successive retries. Added in v0.3.

TLS Configuration

ParameterTypeDefault ValueDescription
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 client.
key_filestringnonePath to the TLS private key file used by the client.
ca_filestringnonePath to the CA certificate file used to verify the remote server certificate.

Example Configuration

{
"protocol": "grpc", // required, default: "grpc"

"grpc_endpoint": "", // default: none
"grpc_compression": "", // default: none
"grpc_headers": {}, // default: none
"grpc_timeout": 0, // default: none
"grpc_read_buffer_size": 0, // default: none
"grpc_write_buffer_size": 0, // default: none
"grpc_authority": "", // default: none
"grpc_balancer_name": "", // default: none

"grpc_tls": {
"enabled": true, // default: true
"insecure": true, // default: true
"min_version": "", // default: none
"cert_file": "", // default: none
"key_file": "", // default: none
"ca_file": "", // default: none
},

"grpc_sending_queue": {
"enabled": true,
"num_consumers": 10, // default: 10
"queue_size": 5000, // default: 5000
"enable_disk_backed_queue": true, // default: true
},

"grpc_retry_on_failure": true, // default: true
"grpc_retry_on_failure_settings": {
"initial_interval": 5, // default: 5
"max_interval": 30, // default: 30
"max_elapsed_time": 300, // default: 300
},

"grpc_keepalive": {
"time": 0, // default: none
"timeout": 0, // default: none
"permit_without_stream": false, // default: false
},

"http_endpoint": "", // default: none
"http_traces_endpoint": "", // default: none
"http_logs_endpoint": "", // default: none
"http_metrics_endpoint": "", // default: none
"http_compression": "", // default: none
"http_headers": {}, // default: none
"http_timeout": 0, // default: none
"http_read_buffer_size": 0, // default: none
"http_write_buffer_size": 0, // default: none

"http_tls": {
"enabled": true, // default: true
"insecure": true, // default: true
"min_version": "", // default: none
"cert_file": "", // default: none
"key_file": "", // default: none
"ca_file": "", // default: none
},

"http_sending_queue": {
"enabled": true,
"num_consumers": 10, // default: 10
"queue_size": 5000, // default: 5000
"enable_disk_backed_queue": true, // default: true
},

"http_retry_on_failure": true, // default: true
"http_retry_on_failure_settings": {
"initial_interval": 5, // default: 5
"max_interval": 30, // default: 30
"max_elapsed_time": 300, // default: 300
},
}

Praxis exposes OTLP-based observability backends as separate palette entries; they use the same configuration as this page: