Server

The type for each server config is map, with two always required keys:

  • name, which specify the name of the server.

  • type, which specify the real type of the server, decides how to parse other keys.

There are many types of server, each with a section below.

Servers

Common Keys

This section describes the common keys, they may be used by many servers.

name

required, type: metric node name

Set the name of the server.

type

required, type: str

Set the type of the server.

shared_logger

optional, type: ascii

Set the server to use a logger running on a shared thread.

default: not set

listen_in_worker

optional, type: bool

Set if we should listen in each worker runtime if you have worker enabled.

The listen instance count will be the same with the worker number count.

default: false

ingress_network_filter

optional, type: ingress network acl rule

Set the network filter for clients.

The used client address will always be the interpreted client address, which means it will be the raw socket peer addr for servers that listen directly, and it will be the address set in the PROXY Protocol message for serverw chained after the server that support PROXY Protocol.

default: not set

tcp_sock_speed_limit

optional, type: tcp socket speed limit

Set speed limit for each tcp socket.

default: no limit

udp_sock_speed_limit

optional, type: udp socket speed limit

Set speed limit for each udp socket.

default: no limit

tcp_copy_buffer_size

optional, type: humanize usize

Set the buffer size for internal tcp copy.

default: 16K, minimal: 4K

tcp_copy_yield_size

optional, type: humanize usize

Set the yield out size for the internal copy task.

default: 1M, minimal: 256K

tcp_misc_opts

optional, type: tcp misc sock opts

Set misc tcp socket options on accepted tcp sockets.

default: not set, nodelay is default enabled

udp_misc_opts

optional, type: udp misc sock opts

Set misc udp socket options on created udp sockets.

default: not set

tls_ticketer

optional, type: tls ticketer

Set a (remote) rolling TLS ticketer.

default: not set

Added in version 0.3.6.

task_idle_check_duration

deprecated

Changed in version 0.3.8: change default value from 5min to 60s

Changed in version 0.4.0: deprecated, use task_idle_check_interval instead

task_idle_check_interval

optional, type: humanize duration

Set the idle check duration for task. The value will be up bound to seconds.

default: 60s, max: 30min, min: 2s

Added in version 0.4.0.

task_idle_max_count

optional, type: usize

The task will be closed if the idle check return IDLE the times as this value.

default: 5

Changed in version 0.3.8: change default value from 1 to 5

flush_task_log_on_created

optional, type: bool

Log when task get created.

default: false

Added in version 0.3.8.

flush_task_log_on_connected

optional, type: bool

Log when upstream connected.

default: false

Added in version 0.3.8.

task_log_flush_interval

optional, type: humanize duration

Enable periodic task log and set the flush interval.

Note

There will be no periodic task log if protocol inspection is enabled, as intercept and inspect logs will be available in this case.

default: not set

Added in version 0.3.8.

extra_metrics_tags

optional, type: static metrics tags

Set extra metrics tags that should be added to server stats and user stats already with server tags added.

default: not set