mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
cluster/websocket: Make websocket dispatcher queue size configurable
Limit the number WebSocket events queued from external clients to dispatcher instances to produce back pressure to the clients if Zeek's IO loop is overloaded.
This commit is contained in:
parent
6bd624d9b2
commit
011029addc
9 changed files with 45 additions and 10 deletions
|
@ -75,6 +75,16 @@ export {
|
|||
## :zeek:see:`Cluster::create_store` with the *persistent* argument set true.
|
||||
const default_persistent_backend = Broker::SQLITE &redef;
|
||||
|
||||
## The default maximum queue size for WebSocket event dispatcher instances.
|
||||
##
|
||||
## If the maximum queue size is reached, events from external WebSocket
|
||||
## clients will be stalled and processed once the queue has been drained.
|
||||
##
|
||||
## An internal metric named ``cluster_onloop_queue_stalls`` and
|
||||
## labeled with a ``WebSocketEventDispatcher:<host>:<port>`` tag
|
||||
## is incremented when the maximum queue size is reached.
|
||||
const default_websocket_max_event_queue_size = 32 &redef;
|
||||
|
||||
## Setting a default dir will, for persistent backends that have not
|
||||
## been given an explicit file path via :zeek:see:`Cluster::stores`,
|
||||
## automatically create a path within this dir that is based on the name of
|
||||
|
@ -353,6 +363,8 @@ export {
|
|||
listen_host: string;
|
||||
## The port the WebSocket server is supposed to listen on.
|
||||
listen_port: port;
|
||||
## The maximum event queue size for this server.
|
||||
max_event_queue_size: count &default=default_websocket_max_event_queue_size;
|
||||
## The TLS options used for this WebSocket server. By default,
|
||||
## TLS is disabled. See also :zeek:see:`Cluster::WebSocketTLSOptions`.
|
||||
tls_options: WebSocketTLSOptions &default=WebSocketTLSOptions();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue