Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use std::time::Duration;

use apollo_metrics::define_metrics;
use apollo_metrics::metrics::LossyIntoF64;
use apollo_network::metrics::NetworkMetrics;

define_metrics!(
Infra => {
Expand All @@ -17,6 +18,10 @@ define_metrics!(
MetricCounter { RECEIVE_MESSAGE_BYTES_SUM, "receive_message_bytes_sum", "Sum of the stress test messages received via broadcast", init = 0 },
MetricHistogram { RECEIVE_MESSAGE_DELAY_SECONDS, "receive_message_delay_seconds", "Message delay in seconds" },

// network metrics from the network manager
MetricGauge { NETWORK_CONNECTED_PEERS, "network_connected_peers", "Number of connected peers in the network" },
MetricGauge { NETWORK_BLACKLISTED_PEERS, "network_blacklisted_peers", "Number of blacklisted peers in the network" },

// system metrics for the node
MetricGauge { SYSTEM_TOTAL_MEMORY_BYTES, "system_total_memory_bytes", "Total system memory in bytes" },
MetricGauge { SYSTEM_AVAILABLE_MEMORY_BYTES, "system_available_memory_bytes", "Available system memory in bytes" },
Expand All @@ -41,3 +46,15 @@ pub fn get_throughput(message_size_bytes: usize, heartbeat_duration: Duration) -
let tps = Duration::from_secs(1).as_secs_f64() / heartbeat_duration.as_secs_f64();
tps * message_size_bytes.into_f64()
}

/// Creates barebones network metrics
pub fn create_network_metrics() -> apollo_network::metrics::NetworkMetrics {
NetworkMetrics {
num_connected_peers: NETWORK_CONNECTED_PEERS,
num_blacklisted_peers: NETWORK_BLACKLISTED_PEERS,
broadcast_metrics_by_topic: None,
sqmr_metrics: None,
event_metrics: None,
latency_metrics: None,
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ use tokio::task::JoinHandle;
use tracing::{info, warn};

use crate::handlers::{receive_stress_test_message, send_stress_test_messages};
use crate::metrics::create_network_metrics;
use crate::protocol::{register_protocol_channels, MessageReceiver, MessageSender};

/// The main stress test node that manages network communication and monitoring
Expand Down Expand Up @@ -56,7 +57,9 @@ impl BroadcastNetworkStressTestNode {
let network_config = Self::create_network_config(&args);

// Create network manager
let mut network_manager = NetworkManager::new(network_config.clone(), None, None);
let network_metrics = create_network_metrics();
let mut network_manager =
NetworkManager::new(network_config.clone(), None, Some(network_metrics));

// Register protocol channels
let (message_sender, message_receiver) = register_protocol_channels(
Expand Down
Loading