From 881ead1e32b531b0424345e8a4a04b1d27668cba Mon Sep 17 00:00:00 2001 From: andrussal Date: Wed, 10 Dec 2025 09:41:19 +0100 Subject: [PATCH] Extract cfgsync tracing helper and wire modules --- testing-framework/tools/cfgsync/src/config.rs | 1 + .../tools/cfgsync/src/config/builder.rs | 142 +----------------- .../tools/cfgsync/src/config/tracing.rs | 36 +++++ 3 files changed, 42 insertions(+), 137 deletions(-) create mode 100644 testing-framework/tools/cfgsync/src/config/tracing.rs diff --git a/testing-framework/tools/cfgsync/src/config.rs b/testing-framework/tools/cfgsync/src/config.rs index 7afed6e..67ce4f6 100644 --- a/testing-framework/tools/cfgsync/src/config.rs +++ b/testing-framework/tools/cfgsync/src/config.rs @@ -4,4 +4,5 @@ mod builder; pub use builder::create_node_configs; pub mod kms; pub mod providers; +pub mod tracing; pub mod validation; diff --git a/testing-framework/tools/cfgsync/src/config/builder.rs b/testing-framework/tools/cfgsync/src/config/builder.rs index 84fd572..9a8b254 100644 --- a/testing-framework/tools/cfgsync/src/config/builder.rs +++ b/testing-framework/tools/cfgsync/src/config/builder.rs @@ -2,7 +2,7 @@ use std::{collections::HashMap, net::Ipv4Addr, str::FromStr as _}; use nomos_core::mantle::GenesisTx as _; use nomos_libp2p::{Multiaddr, PeerId, ed25519}; -use nomos_tracing_service::{LoggerLayer, MetricsLayer, TracingLayer, TracingSettings}; +use nomos_tracing_service::TracingSettings; use nomos_utils::net::get_available_udp_port; use rand::{Rng as _, thread_rng}; use testing_framework_config::topology::configs::{ @@ -14,12 +14,14 @@ use testing_framework_config::topology::configs::{ da::{DaParams, create_da_configs}, network::{NetworkParams, create_network_configs}, time::default_time_config, - tracing::GeneralTracingConfig, wallet::WalletConfig, }; use crate::{ - config::{kms::create_kms_configs, providers::create_providers, validation::validate_inputs}, + config::{ + kms::create_kms_configs, providers::create_providers, tracing::update_tracing_identifier, + validation::validate_inputs, + }, host::{Host, HostKind, sort_hosts}, network::rewrite_initial_peers, }; @@ -128,11 +130,8 @@ pub fn create_node_configs( blend_config.backend_core.listening_address = Multiaddr::from_str(&format!("/ip4/0.0.0.0/udp/{}/quic-v1", host.blend_port)).unwrap(); - // Tracing config. let tracing_config = update_tracing_identifier(tracing_settings.clone(), host.identifier.clone()); - - // Time config let time_config = default_time_config(); configured_hosts.insert( @@ -227,134 +226,3 @@ fn build_peer_ids(ids: &[[u8; 32]]) -> Vec { }) .collect() } - -fn update_tracing_identifier( - settings: TracingSettings, - identifier: String, -) -> GeneralTracingConfig { - GeneralTracingConfig { - tracing_settings: TracingSettings { - logger: match settings.logger { - LoggerLayer::Loki(mut config) => { - config.host_identifier.clone_from(&identifier); - LoggerLayer::Loki(config) - } - other => other, - }, - tracing: match settings.tracing { - TracingLayer::Otlp(mut config) => { - config.service_name.clone_from(&identifier); - TracingLayer::Otlp(config) - } - other @ TracingLayer::None => other, - }, - filter: settings.filter, - metrics: match settings.metrics { - MetricsLayer::Otlp(mut config) => { - config.host_identifier = identifier; - MetricsLayer::Otlp(config) - } - other @ MetricsLayer::None => other, - }, - console: settings.console, - level: settings.level, - }, - } -} - -#[cfg(test)] -mod cfgsync_tests { - use std::{net::Ipv4Addr, num::NonZero, str::FromStr as _, time::Duration}; - - use nomos_da_network_core::swarm::{ - DAConnectionMonitorSettings, DAConnectionPolicySettings, ReplicationConfig, - }; - use nomos_libp2p::{Multiaddr, Protocol}; - use nomos_tracing_service::{ - ConsoleLayer, FilterLayer, LoggerLayer, MetricsLayer, TracingLayer, TracingSettings, - }; - use testing_framework_config::topology::configs::{ - consensus::ConsensusParams, da::DaParams, wallet::WalletConfig, - }; - use tracing::Level; - - use super::create_node_configs; - use crate::host::{Host, HostKind}; - - #[test] - fn basic_ip_list() { - let hosts = (0..10) - .map(|i| Host { - kind: HostKind::Validator, - ip: Ipv4Addr::from_str(&format!("10.1.1.{i}")).unwrap(), - identifier: "node".into(), - network_port: 3000, - da_network_port: 4044, - blend_port: 5000, - api_port: 18080, - testing_http_port: 18081, - }) - .collect(); - - let configs = create_node_configs( - &ConsensusParams { - n_participants: 10, - security_param: NonZero::new(10).unwrap(), - active_slot_coeff: 0.9, - }, - &DaParams { - subnetwork_size: 2, - dispersal_factor: 1, - num_samples: 1, - num_subnets: 2, - old_blobs_check_interval: Duration::from_secs(5), - blobs_validity_duration: Duration::from_secs(u64::MAX), - global_params_path: String::new(), - policy_settings: DAConnectionPolicySettings::default(), - monitor_settings: DAConnectionMonitorSettings::default(), - balancer_interval: Duration::ZERO, - redial_cooldown: Duration::ZERO, - replication_settings: ReplicationConfig { - seen_message_cache_size: 0, - seen_message_ttl: Duration::ZERO, - }, - subnets_refresh_interval: Duration::from_secs(1), - retry_shares_limit: 1, - retry_commitments_limit: 1, - }, - &TracingSettings { - logger: LoggerLayer::None, - tracing: TracingLayer::None, - filter: FilterLayer::None, - metrics: MetricsLayer::None, - console: ConsoleLayer::None, - level: Level::DEBUG, - }, - &WalletConfig::default(), - None, - None, - None, - hosts, - ); - - for (host, config) in &configs { - let network_port = config.network_config.backend.inner.port; - let da_network_port = extract_port(&config.da_config.listening_address); - let blend_port = extract_port(&config.blend_config.backend_core.listening_address); - - assert_eq!(network_port, host.network_port); - assert_eq!(da_network_port, host.da_network_port); - assert_eq!(blend_port, host.blend_port); - } - } - - fn extract_port(multiaddr: &Multiaddr) -> u16 { - multiaddr - .iter() - .find_map(|protocol| match protocol { - Protocol::Udp(port) => Some(port), - _ => None, - }) - .unwrap() - } -} diff --git a/testing-framework/tools/cfgsync/src/config/tracing.rs b/testing-framework/tools/cfgsync/src/config/tracing.rs new file mode 100644 index 0000000..7a174ab --- /dev/null +++ b/testing-framework/tools/cfgsync/src/config/tracing.rs @@ -0,0 +1,36 @@ +use nomos_tracing_service::{LoggerLayer, MetricsLayer, TracingLayer, TracingSettings}; +use testing_framework_config::topology::configs::tracing::GeneralTracingConfig; + +pub fn update_tracing_identifier( + settings: TracingSettings, + identifier: String, +) -> GeneralTracingConfig { + GeneralTracingConfig { + tracing_settings: TracingSettings { + logger: match settings.logger { + LoggerLayer::Loki(mut config) => { + config.host_identifier.clone_from(&identifier); + LoggerLayer::Loki(config) + } + other => other, + }, + tracing: match settings.tracing { + TracingLayer::Otlp(mut config) => { + config.service_name.clone_from(&identifier); + TracingLayer::Otlp(config) + } + other @ TracingLayer::None => other, + }, + filter: settings.filter, + metrics: match settings.metrics { + MetricsLayer::Otlp(mut config) => { + config.host_identifier = identifier; + MetricsLayer::Otlp(config) + } + other @ MetricsLayer::None => other, + }, + console: settings.console, + level: settings.level, + }, + } +}