Edge Delta OTLP Destination Node
5 minute read
Overview
The OTLP (OpenTelemetry Protocol) destination node in Edge Delta is used to send logs, metrics, and traces to a specified OTLP endpoint using either gRPC or HTTP protocols. This node can handle multiple data types and supports both protobuf and JSON encoding for HTTP connections, providing a comprehensive solution for telemetry data transmission. The OTLP output node requires Edge Delta version 1.32.0.
This node requires Edge Delta agent version v1.32.0 or higher.
Example Configuration
gRPC Protocol Example
nodes:
- name: my_otlp_stream
type: otlp_output
endpoint: example.com
port: 443
protocol: grpc
buffer_max_bytesize: 10485760 # 10MB
buffer_ttl: 15m
buffer_path: /var/log/edgedelta/outputbuffer
tls:
enabled: true
ignore_certificate_check: false
ca_file: /path/to/ca_file.pem
HTTP Protocol Example
nodes:
- name: my_otlp_http_stream
type: otlp_output
endpoint: endpoint.example.com/receiver/v1/otlp
port: 443
protocol: http
encoding: proto
buffer_max_bytesize: 10485760 # 10MB
buffer_ttl: 15m
buffer_path: /var/log/edgedelta/outputbuffer
tls:
enabled: true
headers:
- header: Authorization
value: Api-Token <your-token>
Required Parameters
name
A descriptive name for the node. This is the name that will appear in pipeline builder and you can reference this node in the YAML using the name. It must be unique across all nodes. It is a YAML list element so it begins with a - and a space followed by the string. It is a required parameter for all nodes.
nodes:
- name: <node name>
type: <node type>
type: otlp_output
The type parameter specifies the type of node being configured. It is specified as a string from a closed list of node types. It is a required parameter.
nodes:
- name: <node name>
type: <node type>
endpoint
The endpoint parameter specifies the OTLP server endpoint to send telemetry data. It is required and must be specified as a string without the protocol prefix (do not include http:// or https://). For HTTPS endpoints, configure TLS separately using the tls.enabled parameter.
nodes:
- name: <node name>
type: otlp_output
endpoint: example.com/v1/otlp
port: <port number>
Examples:
- For gRPC:
endpoint: otel.example.com - For HTTP:
endpoint: collector.example.com/v1/traces - For HTTPS:
endpoint: secure.example.com/receiverwithtls.enabled: true
port
The port parameter defines the port number for the OTLP endpoint. It should be an integer between 1 and 65535 and is required.
protocol
The protocol parameter specifies the transport protocol to use for sending OTLP data. It is required and must be one of:
grpc- Use gRPC protocol (default)http- Use HTTP protocol
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
protocol: http
Note: When using http protocol with HTTPS endpoints, you must enable TLS by setting tls.enabled: true.
encoding
The encoding parameter specifies the encoding format for OTLP data when using HTTP protocol. It is required when protocol is set to http. Options are:
proto- Use Protocol Buffers (protobuf) encoding (recommended)json- Use JSON encoding
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
protocol: http
encoding: proto
Note: This parameter only applies to HTTP protocol and is ignored when using gRPC.
Optional Parameters
buffer_max_bytesize
The buffer_max_bytesize parameter configures the maximum byte size for total unsuccessful items. If the limit is reached, the remaining items are discarded until the buffer space becomes available. It is specified as a datasize.Size, has a default of 0 indicating no size limit, and it is optional.
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
buffer_max_bytesize: 2048
buffer_path
The buffer_path parameter configures the path to store unsuccessful items. Unsuccessful items are stored there to be retried back (exactly once delivery). It is specified as a string and it is optional.
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
buffer_path: <path to unsuccessful items folder>
buffer_ttl
The buffer_ttl parameter configures the time-to-Live for unsuccessful items, which indicates when to discard them. It is specified as a duration, has a default of 10m, and it is optional.
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
buffer_ttl: 20m
TLS Configuration
The tls parameter allows configuring SSL/TLS settings. It includes sub-parameters like enabled, ignore_certificate_check, ca_file, among others, which control the security configuration for both gRPC and HTTP connections. All TLS settings are optional.
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
tls:
enabled: true
ignore_certificate_check: true
ca_file: /path/to/ca_file.pem
Note: When using HTTP protocol with HTTPS endpoints, you must set tls.enabled: true.
headers
The headers parameter allows you to specify custom HTTP headers to be sent with OTLP requests. This is commonly used for authentication tokens or API keys. Each header consists of a header name and a value.
nodes:
- name: <node name>
type: otlp_output
endpoint: <OTLP server URI>
port: <port number>
protocol: http
headers:
- header: Authorization
value: Bearer <your-token>
- header: X-Custom-Header
value: <custom-value>
Note: For gRPC protocol, headers are sent as metadata. Please refer to the gRPC metadata documentation for more details.
Integration Examples
Dynatrace
nodes:
- name: dynatrace_otlp
type: otlp_output
endpoint: your-environment-id.live.dynatrace.com/api/v2/otlp
port: 443
protocol: http
encoding: json
tls:
enabled: true
headers:
- header: Authorization
value: Api-Token <your-dynatrace-token>
Sumo Logic
nodes:
- name: sumologic_otlp
type: otlp_output
endpoint: endpoint.collection.sumologic.com/receiver/v1/otlp/<your-collector-token>
port: 443
protocol: http
encoding: proto
tls:
enabled: true
Important Notes
- Endpoint Format: Do not include
http://orhttps://in the endpoint field. Use thetls.enabledparameter to specify secure connections. - Port Specification: When using HTTPS endpoints (port 443), ensure
tls.enabled: trueis set. - Encoding for HTTP: When using HTTP protocol, specify the encoding parameter. Protobuf (
proto) is recommended for better performance and smaller payload sizes. - Authentication: Use the
headersparameter to add authentication tokens or API keys required by your OTLP receiver.
Troubleshooting
For detailed troubleshooting guidance including:
- Connection errors and timeout issues
- Authentication failures (401 errors)
- Endpoint configuration problems
- Protocol-specific troubleshooting (gRPC vs HTTP)
- Destination-specific configuration examples
See the comprehensive OTLP Destination Troubleshooting guide.