Fluentforward Receiver
contrib, k8s
Maintainers: @dmitryax
Source: opentelemetry-collector-contrib
Supported Telemetry
Overview
This receiver:- Does not support TLS or the handshake portion of the Forward protocol.
- Does support acknowledgments of events that have the
chunkoption, as per the spec. - Supports all three event types (message, forward, packed forward, including compressed packed forward)
- Supports listening on a Unix domain socket by making the
listenAddressoption of the formunix://<path to socket>. - If using TCP, it will start a UDP server on the same port to deliver heartbeat echos, as per the spec.
Data Conversion
The receiver converts Fluentd events to OpenTelemetry logs. Each Fluentd event is converted to a single OpenTelemetry log record and packets are stored as LogRecordSlice. The FluentDtag is stored as an attribute with key fluentd.tag.
The FluentD event timestamp is used as the log record timestamp.
The record message or log field is stored as the body of the log record. If both are present,
it just takes the field that comes last in the message stream.
Any other fields in the event are stored as attributes on the log record following these rules:
boolvalues are stored as boolean attributesstringvalues are stored as string attributesuint64values are stored as int64 attributes (if value exceeds max int64, stored as string instead)int64values are stored as int64 attributes[]bytevalues are converted to stringsmap[string]anyvalues are stored as nested map attributes[]anyvalues are stored as array attributesfloat32andfloat64values are stored as double attributesnilvalues are left as empty attributes usingplog.LogRecord.Attributes().PutEmpty(key)- All other types are converted to string representation using
fmt.Sprintf("%v", val)which includes complex types
Development
If you are working on this receiver and need to regenerate any of the message pack autogenerated code, just rungo generate on this package and its
subpackages. You can get the msgp binary by just running go get -u -t github.com/tinylib/msgp, and make sure the Go binary path is on your shell’s
PATH.
Configuration
Example Configuration
Last generated: 2026-04-13