diff --git a/auxil/broker b/auxil/broker index 1084bd43ce..4a6f3658e9 160000 --- a/auxil/broker +++ b/auxil/broker @@ -1 +1 @@ -Subproject commit 1084bd43ce92483450d3e47ee5dcf172252e814a +Subproject commit 4a6f3658e9bbaf87e57aa3f930a8270f4a9cea53 diff --git a/scripts/base/frameworks/broker/main.zeek b/scripts/base/frameworks/broker/main.zeek index a5b1405eff..df685f331c 100644 --- a/scripts/base/frameworks/broker/main.zeek +++ b/scripts/base/frameworks/broker/main.zeek @@ -152,11 +152,12 @@ export { ## BROKER_METRICS_EXPORT_TOPIC is defined. option metrics_export_topic = ""; - ## Topics imported for metrics. This should be set on the node that - ## is importing metrics from other nodes. - ## Zeek overrides any value provided in zeek_init or earlier at - ## startup if the environment variable - ## BROKER_METRICS_IMPORT_TOPICS is defined. + ## Topics for the Prometheus exporter for collecting metrics from other + ## peers in the network and including them in the output. Has no effect when + ## not exporting the metrics to Prometheus. + ## + ## Zeek overrides any value provided in zeek_init or earlier at startup if + ## the environment variable BROKER_METRICS_IMPORT_TOPICS is defined. option metrics_import_topics: vector of string = vector(); ## ID for the metrics exporter. When setting a target topic for the diff --git a/src/broker/Manager.cc b/src/broker/Manager.cc index 3f727d2eee..447a30e9b7 100644 --- a/src/broker/Manager.cc +++ b/src/broker/Manager.cc @@ -403,9 +403,9 @@ void Manager::InitPostScript() } WITH_OPT_MAPPING("broker.metrics.import.topics", "Broker::metrics_import_topics") { - if ( auto str = opt.broker_read>() ) + if ( auto topics = opt.broker_read>() ) { - opt.zeek_write(*str); + opt.zeek_write(*topics); } else { @@ -2093,8 +2093,7 @@ void Manager::SetMetricsExportTopic(std::string value) void Manager::SetMetricsImportTopics(std::vector topics) { - // XXX: Uhm... - // bstate->endpoint.metrics_exporter().set_prefixes(std::move(topics)); + bstate->endpoint.metrics_exporter().set_import_topics(std::move(topics)); } void Manager::SetMetricsExportEndpointName(std::string value) diff --git a/testing/btest/Baseline/plugins.hooks/output b/testing/btest/Baseline/plugins.hooks/output index 669e025f64..d915e6b2dd 100644 --- a/testing/btest/Baseline/plugins.hooks/output +++ b/testing/btest/Baseline/plugins.hooks/output @@ -149,12 +149,14 @@ 0.000000 MetaHookPost CallFunction(Broker::__set_metrics_export_interval, , (1.0 sec)) -> 0.000000 MetaHookPost CallFunction(Broker::__set_metrics_export_prefixes, , ([])) -> 0.000000 MetaHookPost CallFunction(Broker::__set_metrics_export_topic, , ()) -> +0.000000 MetaHookPost CallFunction(Broker::__set_metrics_import_topics, , ([])) -> 0.000000 MetaHookPost CallFunction(Broker::__subscribe, , (zeek/supervisor)) -> 0.000000 MetaHookPost CallFunction(Broker::subscribe, , (zeek/supervisor)) -> 0.000000 MetaHookPost CallFunction(Broker::update_metrics_export_endpoint_name, , (Broker::metrics_export_endpoint_name, )) -> 0.000000 MetaHookPost CallFunction(Broker::update_metrics_export_interval, , (Broker::metrics_export_interval, 1.0 sec)) -> 0.000000 MetaHookPost CallFunction(Broker::update_metrics_export_prefixes, , (Broker::metrics_export_prefixes, [])) -> 0.000000 MetaHookPost CallFunction(Broker::update_metrics_export_topic, , (Broker::metrics_export_topic, )) -> +0.000000 MetaHookPost CallFunction(Broker::update_metrics_import_topics, , (Broker::metrics_import_topics, [])) -> 0.000000 MetaHookPost CallFunction(Cluster::is_enabled, , ()) -> 0.000000 MetaHookPost CallFunction(Cluster::is_enabled, , ()) -> 0.000000 MetaHookPost CallFunction(Cluster::local_node_type, , ()) -> @@ -482,6 +484,8 @@ 0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Broker::metrics_export_prefixes, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) -> 0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Broker::metrics_export_topic, Broker::update_metrics_export_topic{ Broker::__set_metrics_export_topic(Broker::val)return (Broker::val)}, 0)) -> 0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Broker::metrics_export_topic, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) -> +0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Broker::metrics_import_topics, Broker::update_metrics_import_topics{ Broker::__set_metrics_import_topics(Broker::topics)return (Broker::topics)}, 0)) -> +0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Broker::metrics_import_topics, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) -> 0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Broker::peer_counts_as_iosource, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) -> 0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Conn::analyzer_inactivity_timeouts, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) -> 0.000000 MetaHookPost CallFunction(Option::set_change_handler, , (Conn::default_extract, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) -> @@ -1650,12 +1654,14 @@ 0.000000 MetaHookPre CallFunction(Broker::__set_metrics_export_interval, , (1.0 sec)) 0.000000 MetaHookPre CallFunction(Broker::__set_metrics_export_prefixes, , ([])) 0.000000 MetaHookPre CallFunction(Broker::__set_metrics_export_topic, , ()) +0.000000 MetaHookPre CallFunction(Broker::__set_metrics_import_topics, , ([])) 0.000000 MetaHookPre CallFunction(Broker::__subscribe, , (zeek/supervisor)) 0.000000 MetaHookPre CallFunction(Broker::subscribe, , (zeek/supervisor)) 0.000000 MetaHookPre CallFunction(Broker::update_metrics_export_endpoint_name, , (Broker::metrics_export_endpoint_name, )) 0.000000 MetaHookPre CallFunction(Broker::update_metrics_export_interval, , (Broker::metrics_export_interval, 1.0 sec)) 0.000000 MetaHookPre CallFunction(Broker::update_metrics_export_prefixes, , (Broker::metrics_export_prefixes, [])) 0.000000 MetaHookPre CallFunction(Broker::update_metrics_export_topic, , (Broker::metrics_export_topic, )) +0.000000 MetaHookPre CallFunction(Broker::update_metrics_import_topics, , (Broker::metrics_import_topics, [])) 0.000000 MetaHookPre CallFunction(Cluster::is_enabled, , ()) 0.000000 MetaHookPre CallFunction(Cluster::is_enabled, , ()) 0.000000 MetaHookPre CallFunction(Cluster::local_node_type, , ()) @@ -1983,6 +1989,8 @@ 0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Broker::metrics_export_prefixes, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) 0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Broker::metrics_export_topic, Broker::update_metrics_export_topic{ Broker::__set_metrics_export_topic(Broker::val)return (Broker::val)}, 0)) 0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Broker::metrics_export_topic, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) +0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Broker::metrics_import_topics, Broker::update_metrics_import_topics{ Broker::__set_metrics_import_topics(Broker::topics)return (Broker::topics)}, 0)) +0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Broker::metrics_import_topics, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) 0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Broker::peer_counts_as_iosource, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) 0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Conn::analyzer_inactivity_timeouts, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) 0.000000 MetaHookPre CallFunction(Option::set_change_handler, , (Conn::default_extract, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100)) @@ -3151,12 +3159,14 @@ 0.000000 | HookCallFunction Broker::__set_metrics_export_interval(1.0 sec) 0.000000 | HookCallFunction Broker::__set_metrics_export_prefixes([]) 0.000000 | HookCallFunction Broker::__set_metrics_export_topic() +0.000000 | HookCallFunction Broker::__set_metrics_import_topics([]) 0.000000 | HookCallFunction Broker::__subscribe(zeek/supervisor) 0.000000 | HookCallFunction Broker::subscribe(zeek/supervisor) 0.000000 | HookCallFunction Broker::update_metrics_export_endpoint_name(Broker::metrics_export_endpoint_name, ) 0.000000 | HookCallFunction Broker::update_metrics_export_interval(Broker::metrics_export_interval, 1.0 sec) 0.000000 | HookCallFunction Broker::update_metrics_export_prefixes(Broker::metrics_export_prefixes, []) 0.000000 | HookCallFunction Broker::update_metrics_export_topic(Broker::metrics_export_topic, ) +0.000000 | HookCallFunction Broker::update_metrics_import_topics(Broker::metrics_import_topics, []) 0.000000 | HookCallFunction Cluster::is_enabled() 0.000000 | HookCallFunction Cluster::local_node_type() 0.000000 | HookCallFunction Cluster::register_pool([topic=zeek<...>/logger, node_type=Cluster::LOGGER, max_nodes=, exclusive=F]) @@ -3483,6 +3493,8 @@ 0.000000 | HookCallFunction Option::set_change_handler(Broker::metrics_export_prefixes, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100) 0.000000 | HookCallFunction Option::set_change_handler(Broker::metrics_export_topic, Broker::update_metrics_export_topic{ Broker::__set_metrics_export_topic(Broker::val)return (Broker::val)}, 0) 0.000000 | HookCallFunction Option::set_change_handler(Broker::metrics_export_topic, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100) +0.000000 | HookCallFunction Option::set_change_handler(Broker::metrics_import_topics, Broker::update_metrics_import_topics{ Broker::__set_metrics_import_topics(Broker::topics)return (Broker::topics)}, 0) +0.000000 | HookCallFunction Option::set_change_handler(Broker::metrics_import_topics, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100) 0.000000 | HookCallFunction Option::set_change_handler(Broker::peer_counts_as_iosource, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100) 0.000000 | HookCallFunction Option::set_change_handler(Conn::analyzer_inactivity_timeouts, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100) 0.000000 | HookCallFunction Option::set_change_handler(Conn::default_extract, Config::config_option_changed{ Config::log = Config::Info($ts=network_time(), $id=Config::ID, $old_value=Config::format_value(lookup_ID(Config::ID)), $new_value=Config::format_value(Config::new_value))if ( != Config::location) Config::log$location = Config::locationLog::write(Config::LOG, to_any_coerceConfig::log)return (Config::new_value)}, -100) diff --git a/testing/btest/Baseline/scripts.base.frameworks.telemetry.internal-metrics/out b/testing/btest/Baseline/scripts.base.frameworks.telemetry.internal-metrics/out index fdae1e75f3..a2e8f321af 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.telemetry.internal-metrics/out +++ b/testing/btest/Baseline/scripts.base.frameworks.telemetry.internal-metrics/out @@ -13,8 +13,8 @@ count_value, 0 ### caf |5| Telemetry::INT_COUNTER, caf.system, rejected-messages, [], [], 0.0 count_value, 0 -Telemetry::INT_COUNTER, caf.system, processed-messages, [], [], 7.0 -count_value, 7 +Telemetry::INT_COUNTER, caf.system, processed-messages, [], [], 8.0 +count_value, 8 Telemetry::INT_GAUGE, caf.system, running-actors, [], [], 2.0 count_value, 2 Telemetry::INT_GAUGE, caf.system, queued-messages, [], [], 0.0