mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Management framework: add auto-enumeration of metrics ports
This is quite redundant with the enumeration for Broker ports, unfortunately. But the logic is subtly different: all nodes obtain a telemetry port, while not all nodes require a Broker port, for example, and in the metrics port assignment we also cross-check selected Broker ports. I found more unified code actually harder to read in the end. The logic for the two sets remains the same: from a start point, ports get enumerated sequentially that aren't otherwise taken. These ports are assumed available; there's nothing that checks their availability -- for now. The default start port is 9000. I considered 9090, to align with the Prometheus default, but counting upward from there is likely to hit trouble with the Broker default ports (9999/9997), used by the Supervisor. Counting downward is a bit unnatural, and shifting the Broker default ports brings subtle ordering issues. This also changes the node ordering logic slightly since it seems more intuitive to keep sequential ports on a given instance, instead of striping across them.
This commit is contained in:
parent
fa6361af56
commit
742f7fe340
2 changed files with 181 additions and 54 deletions
|
@ -61,16 +61,27 @@ export {
|
|||
## for websocket clients.
|
||||
const default_port_websocket = 2149/tcp &redef;
|
||||
|
||||
## Whether the controller should auto-assign listening ports to cluster
|
||||
## nodes that need them and don't have them explicitly specified in
|
||||
## cluster configurations.
|
||||
const auto_assign_ports = T &redef;
|
||||
## Whether the controller should auto-assign Broker listening ports to
|
||||
## cluster nodes that need them and don't have them explicitly specified
|
||||
## in cluster configurations.
|
||||
const auto_assign_broker_ports = T &redef;
|
||||
const auto_assign_ports = T &redef &deprecated="Remove in v7.1: replaced by auto_assign_broker_ports.";
|
||||
|
||||
## The TCP start port to use for auto-assigning cluster node listening
|
||||
## ports, if :zeek:see:`Management::Controller::auto_assign_ports` is
|
||||
## enabled (the default) and the provided configurations don't have
|
||||
## ports assigned.
|
||||
const auto_assign_start_port = 2200/tcp &redef;
|
||||
## ports, if :zeek:see:`Management::Controller::auto_assign_broker_ports` is
|
||||
## enabled (the default) and nodes don't come with those ports assigned.
|
||||
const auto_assign_broker_start_port = 2200/tcp &redef;
|
||||
const auto_assign_start_port = 2200/tcp &redef &deprecated="Remove in v7.1: replaced by auto_assign_broker_start_port.";
|
||||
|
||||
## Whether the controller should auto-assign metrics ports for Prometheus
|
||||
## to nodes that need them and don't have them explicitly specified in
|
||||
## their cluster configurations.
|
||||
const auto_assign_metrics_ports = T &redef;
|
||||
|
||||
## The TCP start port to use for auto-assigning metrics exposition ports
|
||||
## for Prometheus, if :zeek:see:`Management::Controller::auto_assign_metrics_ports`
|
||||
## is enabled (the default).
|
||||
const auto_assign_metrics_start_port = 9000/tcp &redef;
|
||||
|
||||
## The controller's Broker topic. Clients send requests to this topic.
|
||||
const topic = "zeek/management/controller" &redef;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue