mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Add a services.json endpoint for Prometheus service discovery
This commit is contained in:
parent
abb84db6c8
commit
e93e4cc26d
10 changed files with 140 additions and 69 deletions
|
@ -196,6 +196,10 @@ export {
|
|||
## A unique identifier assigned to the node by the broker framework.
|
||||
## This field is only set while a node is connected.
|
||||
id: string &optional;
|
||||
## The port used to expose metrics to Prometheus. Setting this in a cluster
|
||||
## configuration will override the setting for Telemetry::metrics_port for
|
||||
## the node.
|
||||
metrics_port: port &optional;
|
||||
};
|
||||
|
||||
## Record to represent a cluster node including its name.
|
||||
|
@ -218,6 +222,14 @@ export {
|
|||
## Returns: The :zeek:type:`Cluster::NodeType` the calling node acts as.
|
||||
global local_node_type: function(): NodeType;
|
||||
|
||||
## This function can be called at any time to determine the configured
|
||||
## metrics port for Prometheus being used by current Zeek instance. If
|
||||
## :zeek:id:`Cluster::is_enabled` returns false or the node isn't found,
|
||||
## ``0/unknown`` is returned.
|
||||
##
|
||||
## Returns: The metrics port used by the calling node.
|
||||
global local_node_metrics_port: function(): port;
|
||||
|
||||
## The cluster layout definition. This should be placed into a filter
|
||||
## named cluster-layout.zeek somewhere in the ZEEKPATH. It will be
|
||||
## automatically loaded if the CLUSTER_NODE environment variable is set.
|
||||
|
@ -338,6 +350,20 @@ function local_node_type(): NodeType
|
|||
return nodes[node]$node_type;
|
||||
}
|
||||
|
||||
function local_node_metrics_port(): port
|
||||
{
|
||||
if ( ! is_enabled() )
|
||||
return 0/unknown;
|
||||
|
||||
if ( node !in nodes )
|
||||
return 0/unknown;
|
||||
|
||||
if ( ! nodes[node]?$metrics_port )
|
||||
return 0/unknown;
|
||||
|
||||
return nodes[node]$metrics_port;
|
||||
}
|
||||
|
||||
function node_topic(name: string): string
|
||||
{
|
||||
return node_topic_prefix + name + "/";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue