socket_server input
Creates a server that receives a stream of messages over a TCP, UDP or Unix socket.
- Common
- Advanced
# Common config fields, showing default values
input:
label: ""
socket_server:
network: "" # No default (required)
address: "" # No default (required)
address_cache: "" # No default (optional)
tls:
cert_file: "" # No default (optional)
key_file: "" # No default (optional)
self_signed: false
client_auth: "no"
auto_replay_nacks: true
scanner: {"lines":{}}
# All config fields, showing default values
input:
label: ""
socket_server:
network: "" # No default (required)
address: "" # No default (required)
address_cache: "" # No default (optional)
tcp:
reuse_addr: false
reuse_port: false
tls:
cert_file: "" # No default (optional)
key_file: "" # No default (optional)
self_signed: false
client_auth: "no"
auto_replay_nacks: true
scanner: {"lines":{}}
Fields
network
A network type to accept.
Type: string
Options: unix, tcp, udp, tls, unixgram
address
The address to listen from.
Type: string
address_cache
An optional cache within which this input should write it's bound address once known. The key of the cache item containing the address will be the label of the component suffixed with _address (e.g. foo_address), or socket_server_address when a label has not been provided. This is useful in situations where the address is dynamically allocated by the server (127.0.0.1:0) and you want to store the allocated address somewhere for reference by other systems and components.
Type: string
tcp
TCP listener socket configuration.
Type: object
tcp.reuse_addr
Enable SO_REUSEADDR, allowing binding to ports in TIME_WAIT state. Useful for graceful restarts and config reloads where the server needs to rebind to the same port immediately after shutdown.
Type: bool
Default: false
tcp.reuse_port
Enable SO_REUSEPORT, allowing multiple sockets to bind to the same port for load balancing across multiple processes/threads.
Type: bool
Default: false
tls
TLS specific configuration, valid when the network is set to tls.
Type: object
tls.cert_file
PEM encoded certificate for use with TLS.
Type: string
tls.key_file
PEM encoded private key for use with TLS.
Type: string
tls.self_signed
Whether to generate self signed certificates.
Type: bool
Default: false
tls.client_auth
How client authentication is handled.
Type: string
Default: "no"
| Option | Summary |
|---|---|
no | client certificate is not requested nor required. |
request | will request client certificate, not require it. |
require_any | will accept any client certificate, even if not valid. |
require_valid | requires a valid client certificate. |
verify_if_given | will verify a certificate, if one is sent by the client. |
auto_replay_nacks
Whether messages that are rejected (nacked) at the output level should be automatically replayed indefinitely, eventually resulting in back pressure if the cause of the rejections is persistent. If set to false these messages will instead be deleted. Disabling auto replays can greatly improve memory efficiency of high throughput streams as the original shape of the data can be discarded immediately upon consumption and mutation.
Type: bool
Default: true
scanner
The scanner by which the stream of bytes consumed will be broken out into individual messages. Scanners are useful for processing large sources of data without holding the entirety of it within memory. For example, the csv scanner allows you to process individual CSV rows without loading the entire CSV file in memory at once.
Type: scanner
Default: {"lines":{}}