Make all options const-redefs, remove all of the change handler code

This commit is contained in:
Tim Wojtulewicz 2024-03-12 09:55:20 -07:00
parent 17d09c657b
commit 643bb38419
4 changed files with 5 additions and 197 deletions

View file

@ -14,13 +14,13 @@ export {
## Frequency for publishing scraped metrics to the target topic. Zeek
## overrides any value provided in zeek_init or earlier at startup if
## the environment variable ZEEK_METRICS_EXPORT_INTERVAL is defined.
option metrics_export_interval = 1 sec;
const metrics_export_interval = 1 sec &redef;
## Target topic for the metrics. Setting a non-empty string starts the
## periodic publishing of local metrics. Zeek overrides any value
## provided in zeek_init or earlier at startup if the environment
## variable ZEEK_METRICS_EXPORT_TOPIC is defined.
option metrics_export_topic = "";
const metrics_export_topic = "" &redef;
## Topics for the telmeetry framework for collecting metrics from other
## peers in the network and including them in the output. Has no effect
@ -28,7 +28,7 @@ export {
##
## Zeek overrides any value provided in zeek_init or earlier at startup
## if the environment variable ZEEK_METRICS_IMPORT_TOPICS is defined.
option metrics_import_topics: vector of string = vector();
const metrics_import_topics: vector of string = vector() &redef;
## ID for the metrics exporter. When setting a target topic for the
## exporter, Broker sets this option to the suffix of the new topic
@ -38,72 +38,10 @@ export {
## good-enough ID. Zeek overrides any value provided in zeek_init or
## earlier at startup if the environment variable
## ZEEK_METRICS_ENDPOINT_NAME is defined.
option metrics_export_endpoint_name = "";
const metrics_export_endpoint_name = "" &redef;
## Selects prefixes from the local metrics. Only metrics with prefixes
## listed in this variable are included when publishing local metrics.
## Setting an empty vector selects *all* metrics.
option metrics_export_prefixes: vector of string = vector();
const metrics_export_prefixes: vector of string = vector() &redef;
}
# Needed for the __set methods below
@load base/bif/telemetry.bif
function update_metrics_export_interval(id: string, val: interval): interval
{
Telemetry::__set_metrics_export_interval(val);
return val;
}
function update_metrics_export_topic(id: string, val: string): string
{
Telemetry::__set_metrics_export_topic(val);
return val;
}
function update_metrics_import_topics(id: string, topics: vector of string): vector of string
{
Telemetry::__set_metrics_import_topics(topics);
return topics;
}
function update_metrics_export_endpoint_name(id: string, val: string): string
{
Telemetry::__set_metrics_export_endpoint_name(val);
return val;
}
function update_metrics_export_prefixes(id: string, filter: vector of string): vector of string
{
Telemetry::__set_metrics_export_prefixes(filter);
return filter;
}
event zeek_init()
{
# interval
update_metrics_export_interval("Telemetry::metrics_export_interval",
Telemetry::metrics_export_interval);
Option::set_change_handler("Telemetry::metrics_export_interval",
update_metrics_export_interval);
# topic
update_metrics_export_topic("Telemetry::metrics_export_topic",
Telemetry::metrics_export_topic);
Option::set_change_handler("Telemetry::metrics_export_topic",
update_metrics_export_topic);
# import topics
update_metrics_import_topics("Telemetry::metrics_import_topics",
Telemetry::metrics_import_topics);
Option::set_change_handler("Telemetry::metrics_import_topics",
update_metrics_import_topics);
# endpoint name
update_metrics_export_endpoint_name("Telemetry::metrics_export_endpoint_name",
Telemetry::metrics_export_endpoint_name);
Option::set_change_handler("Telemetry::metrics_export_endpoint_name",
update_metrics_export_endpoint_name);
# prefixes
update_metrics_export_prefixes("Telemetry::metrics_export_prefixes",
Telemetry::metrics_export_prefixes);
Option::set_change_handler("Telemetry::metrics_export_prefixes",
update_metrics_export_prefixes);
}