43 lines
1.7 KiB
Plaintext
43 lines
1.7 KiB
Plaintext
##! Configurable settings for the Telemetry framework.
|
|
##!
|
|
##! These reside separately from the main framework so that they can be loaded
|
|
##! in bare mode without all of the framework. This allows things like the
|
|
##! plugins.hooks test to see the options without needing the rest.
|
|
|
|
module Telemetry;
|
|
|
|
export {
|
|
## Address used to make metric data available to Prometheus scrapers via
|
|
## HTTP.
|
|
const metrics_address = getenv("ZEEK_DEFAULT_LISTEN_ADDRESS") &redef;
|
|
|
|
## Port used to make metric data available to Prometheus scrapers via
|
|
## HTTP. The default value means Zeek won't expose the port.
|
|
const metrics_port = 0/unknown &redef;
|
|
|
|
## ID for the metrics exporter. This is used as the 'endpoint' label
|
|
## value when exporting data to Prometheus. In a cluster setup, this
|
|
## defaults to the name of the node in the cluster configuration.
|
|
const metrics_endpoint_name = "" &redef;
|
|
}
|
|
|
|
# When running a cluster, use the metrics port from the cluster node
|
|
# configuration for exporting data to Prometheus.
|
|
#
|
|
# The manager node will also provide a ``/services.json`` endpoint
|
|
# for the HTTP Service Discovery system in Prometheus to use for
|
|
# configuration. This endpoint will include information for all of
|
|
# the other nodes in the cluster.
|
|
|
|
# We do this here, and not in main.zeek, to avoid ordering issues when loading
|
|
# the telemetry and cluster frameworks. This applies even in bare mode, per
|
|
# init-frameworks-and-bifs.zeek: the cluster's metrics ports need to be available
|
|
# for the redefs to assign the correct values.
|
|
@if ( Cluster::is_enabled() )
|
|
redef Telemetry::metrics_endpoint_name = Cluster::node;
|
|
|
|
@if ( Cluster::local_node_metrics_port() != 0/unknown )
|
|
redef Telemetry::metrics_port = Cluster::local_node_metrics_port();
|
|
@endif
|
|
@endif
|