Native OpenTelemetry Export Arrives: Introducing the omotlp Output Module
With the latest merge into the rsyslog development branch, rsyslog now provides a native OpenTelemetry (OTLP/HTTP) log exporter. The new omotlp output module enables rsyslog to send logs directly to any OTLP-compliant collector without the need for sidecars or protocol translators.

This is Phase 1 of the OpenTelemetry integration. It focuses on the OTLP/HTTP JSON transport, including batching, retry semantics, TLS/mTLS, and proxy support. Additional transport variants (gRPC and HTTP/protobuf) may follow in future phases.
The module will become available shortly through the official rsyslog project packages as well as the project container images.
Key Capabilities
omotlp implements the OpenTelemetry log data model and provides a configurable, production-oriented transport layer.
Transport and Delivery
- Native OTLP/HTTP JSON export
- Configurable batching (count, byte size, timeout)
- Backoff and retry handling for 429/5xx responses
- Optional gzip compression
- Full TLS/mTLS support
- HTTP, HTTPS, and SOCKS proxy support
Metadata and Mapping
- Template-driven log body generation
- Full resource attributes via JSON
- Attribute and severity mapping
- Trace correlation (trace ID, span ID, trace flags)
Observability
The module exposes per-instance statistics via impstats, including:
- batches submitted, successful, retried, and dropped
- HTTP 4xx and 5xx counts
- total records sent
- cumulative HTTP request latency
Configuration and Availability
The module is off by default and must be explicitly enabled at build time:
./configure --enable-omotlpUpcoming project packages and the official container images will ship with omotlp enabled.
A minimal configuration example:
module(load="omotlp")
action(
type="omotlp"
endpoint="http://otel-collector:4318"
path="/v1/logs"
)Early Adopters Welcome
We are actively looking for early adopters. If you plan to integrate OpenTelemetry log pipelines with rsyslog, we are happy to support you during evaluation and onboarding. Feedback from these deployments will directly shape the next stages of the module, including new transports and advanced features.
rsyslog as a Syslog to OpenTelemetry Forwarder
With imtcp, imudp, or any other input module, rsyslog can now act as a native syslog-to-OpenTelemetry gateway. This covers traditional infrastructure, appliances, legacy systems, and cloud workloads that still speak syslog.
Example configuration:
module(load="imtcp")
module(load="imudp")
module(load="omotlp")
input(type="imtcp" port="514")
input(type="imudp" port="514")
action(
type="omotlp"
endpoint="http://otel-collector:4318"
path="/v1/logs"
batch.max_items="200"
batch.timeout.ms="2000"
compression="gzip"
)Looking Ahead
OpenTelemetry is becoming the standard interface for log ingestion across cloud and Kubernetes environments. Well, many say it already is. With omotlp, rsyslog integrates directly into these pipelines and provides a high-performance, low-overhead path from syslog to OTLP.
Feedback from early deployments will guide further development, including gRPC export, protobuf support, and additional optimizations.
