Forward Protocol Input
Reads events via the Fluent Forward protocol on a Unix domain socket.
Supports all standard Forward protocol modes:
- Message:
[tag, time, record] - Forward:
[tag, [[time, record], ...]] - PackedForward:
[tag, packed_entries_bin]
Each record is decoded from msgpack and emitted as a JSON line with the Forward tag injected as a "tag" field.
Config Files
To configure the Forward protocol input module, Edit these files.
Below is the default configuration from: forward/config.yaml.
ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgImZvcndhcmQiIDogewogICAgICAidHlwZSIgOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IGZhbHNlLAogICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgImlucHV0UG9ydCIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICBdLAogICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRDUCBwb3J0IGZvciBGb3J3YXJkIHByb3RvY29sIGlucHV0XG5cblRDUCBwb3J0IHdoZXJlIExvZzEweCBsaXN0ZW5zIGZvciBpbmNvbWluZyBGbHVlbnQgRm9yd2FyZCBwcm90b2NvbCBtZXNzYWdlcy4gU3VwcG9ydHMgYWxsIHN0YW5kYXJkIEZvcndhcmQgcHJvdG9jb2wgbW9kZXMgKE1lc3NhZ2UsIEZvcndhcmQsIFBhY2tlZEZvcndhcmQpLiBFYWNoIGluY29taW5nIHJlY29yZCBpcyBkZWNvZGVkIGZyb20gbXNncGFjayBhbmQgZW1pdHRlZCBhcyBKU09OIGZvciB0aGUgcGlwZWxpbmUuICBFeGFtcGxlOiBgMjQyMjRgIChEZWZhdWx0OiAyNDIyNCkiLAogICAgICAgICAgImRlZmF1bHQiIDogIjI0MjI0IgogICAgICAgIH0sCiAgICAgICAgImlucHV0UGF0aCIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAibnVsbCIKICAgICAgICAgIF0sCiAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVW5peCBzb2NrZXQgcGF0aCBmb3IgRm9yd2FyZCBwcm90b2NvbCBpbnB1dCAob3ZlcnJpZGVzIHBvcnQpXG5cblVuaXggZG9tYWluIHNvY2tldCBwYXRoIHdoZXJlIExvZzEweCBsaXN0ZW5zIGZvciBpbmNvbWluZyBGbHVlbnQgRm9yd2FyZCBwcm90b2NvbCBtZXNzYWdlcy4gV2hlbiBzZXQsIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgVENQIHBvcnQuICBFeGFtcGxlOiBgL3RtcC90ZW54LWZvcndhcmQtaW4uc29ja2AiCiAgICAgICAgfSwKICAgICAgICAic291cmNlUGF0dGVybiIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAibnVsbCIKICAgICAgICAgIF0sCiAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRXZlbnQgc291cmNlIGNhcHR1cmUgcmVnZXggcGF0dGVyblxuXG5EZWZpbmVzIGEgcmVnZXggcGF0dGVybiB0byBjYXB0dXJlICdzb3VyY2UnIHZhbHVlcyBmb3IgZWFjaCB0cmFuc2Zvcm1lZCBUZW5YT2JqZWN0LiBUaGUgRm9yd2FyZCBwcm90b2NvbCB0YWcgaXMgaW5qZWN0ZWQgaW50byBlYWNoIHJlY29yZCBhcyBhIFwidGFnXCIgZmllbGQuIFRoZSBkZWZhdWx0IHBhdHRlcm4gZXh0cmFjdHMgdGhpcyB0YWcgYXMgdGhlIGV2ZW50IHNvdXJjZS4gKERlZmF1bHQ6IFwidGFnXCI6XCIoLio/KVwiKSIsCiAgICAgICAgICAiZGVmYXVsdCIgOiAiXCJ0YWdcIjpcIiguKj8pXCIiCiAgICAgICAgfSwKICAgICAgICAiZXh0cmFjdG9ycyIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAibnVsbCIKICAgICAgICAgIF0sCiAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiSlNPTiAvIHJlZ2V4IGV4dHJhY3RvciBuYW1lcyBhcHBsaWVkIHRvIGVhY2ggRm9yd2FyZCByZWNvcmRcblxuTGlzdCBvZiBleHRyYWN0b3IgbmFtZXMgdG8gYXBwbHkgdG8gZWFjaCBldmVudCBhZnRlciBGb3J3YXJkLXByb3RvY29sIGRlY29kaW5nLiBFYWNoIG5hbWVkIGV4dHJhY3RvciBtdXN0IGJlIGRlZmluZWQgZWxzZXdoZXJlIGluIHRoZSBwaXBlbGluZSAoc2VlIGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL2lucHV0L2V4dHJhY3QpLiBVc2VmdWwgd2hlbiB0aGUgcmVjb3JkcyBjb21pbmcgb3ZlciBGb3J3YXJkIGNhcnJ5IGEgY3VzdG9tIEpTT04gc2hhcGUgYW5kIHlvdSB3YW50IHRvIGNhcHR1cmUgc3BlY2lmaWMgZmllbGRzIGFzIFRlblhPYmplY3QgcHJvcGVydGllcy4gKERlZmF1bHQ6IFtdKSIsCiAgICAgICAgICAiaXRlbXMiIDogewogICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJkZWZhdWx0IiA6IFsgXQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IHRydWUKfQ==
# 🔟❎ 'run' Forward protocol input configuration
#
# Configure an input that receives events via the Fluent Forward protocol
# on a Unix domain socket. To learn more see https://doc.log10x.com/run/input/forward/
# Set the 10x pipeline to 'run'
tenx: run
# =============================== Dependencies ================================
include: run/modules/input/forward
# ======================== Forward Protocol Options ============================
forward:
# ----------------------------- Input Options -----------------------------
# 'inputPort' specifies the TCP port to listen on for Forward protocol messages
inputPort: $=TenXEnv.get("TENX_FORWARD_INPUT_SOCKET", "24224")
# 'inputPath' specifies a Unix domain socket path to listen on instead of TCP.
# When set, takes precedence over 'inputPort'.
inputPath: $=TenXEnv.get("TENX_FORWARD_INPUT_ADDRESS", "")
# ---------------------------- Parsing Options ----------------------------
# 'extractors' defines a list of JSON/regex extractor names
# used to capture and redact event values from 'path' to transform
# into TenXObjects. To learn more see: https://doc.log10x.com/run/input/extract
extractors: [
]
# 'sourcePattern' defines a regex pattern that captures a 'source' value
# for each event received via the Forward protocol and transformed into
# a TenXObject. The Forward tag is injected as a "tag" field in each
# record, so the default pattern extracts the source from the tag.
sourcePattern: null
Options
Specify the options below to configure the Forward protocol input:
| Name | Description |
|---|---|
| forwardInputPort | TCP port for Forward protocol input |
| forwardInputPath | Unix socket path for Forward protocol input (overrides port) |
| forwardSourcePattern | Event source capture regex pattern |
| forwardExtractors | JSON / regex extractor names applied to each Forward record |
forwardInputPort
TCP port for Forward protocol input.
| Type | Default |
|---|---|
| String | 24224 |
TCP port where Log10x listens for incoming Fluent Forward protocol messages.
Supports all standard Forward protocol modes (Message, Forward, PackedForward). Each incoming record is decoded from msgpack and emitted as JSON for the pipeline.
Example: 24224.
forwardInputPath
Unix socket path for Forward protocol input (overrides port).
| Type | Default |
|---|---|
| String | "" |
Unix domain socket path where Log10x listens for incoming Fluent Forward protocol messages. When set, takes precedence over the TCP port.
Example: /tmp/tenx-forward-in.sock.
forwardSourcePattern
Event source capture regex pattern.
| Type | Default |
|---|---|
| String | "tag":"(.*?)" |
Defines a regex pattern to capture 'source' values for each transformed TenXObject. The Forward protocol tag is injected into each record as a "tag" field. The default pattern extracts this tag as the event source.
forwardExtractors
JSON / regex extractor names applied to each Forward record.
| Type | Default |
|---|---|
| List | [] |
List of extractor names to apply to each event after Forward-protocol decoding. Each named extractor must be defined elsewhere in the pipeline (see https://doc.log10x.com/run/input/extract). Useful when the records coming over Forward carry a custom JSON shape and you want to capture specific fields as TenXObject properties.
This module is defined in forward/module.yaml.