Skip to content

Commit 6cefd55

Browse files
apollo_network_benchmark: added receive metrics
1 parent a294977 commit 6cefd55

File tree

5 files changed

+36
-4
lines changed

5 files changed

+36
-4
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/apollo_network_benchmark/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ license-file.workspace = true
99
testing = []
1010

1111
[dependencies]
12+
apollo_metrics.workspace = true
1213
apollo_network.workspace = true
1314
clap = { workspace = true, features = ["derive", "env"] }
1415
futures.workspace = true

crates/apollo_network_benchmark/src/bin/broadcast_network_stress_test_node/handlers.rs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
use std::time::SystemTime;
22

3+
use apollo_metrics::metrics::LossyIntoF64;
34
use libp2p::PeerId;
4-
use tracing::trace;
55

66
use crate::message::StressTestMessage;
7+
use crate::metrics::{
8+
RECEIVE_MESSAGE_BYTES,
9+
RECEIVE_MESSAGE_BYTES_SUM,
10+
RECEIVE_MESSAGE_COUNT,
11+
RECEIVE_MESSAGE_DELAY_SECONDS,
12+
RECEIVE_MESSAGE_NEGATIVE_DELAY_SECONDS,
13+
};
714

8-
pub fn receive_stress_test_message(received_message: Vec<u8>, sender_peer_id: Option<PeerId>) {
15+
pub fn receive_stress_test_message(received_message: Vec<u8>, _sender_peer_id: Option<PeerId>) {
916
let end_time = SystemTime::now();
1017

1118
let received_message: StressTestMessage = received_message.into();
@@ -18,6 +25,17 @@ pub fn receive_stress_test_message(received_message: Vec<u8>, sender_peer_id: Op
1825
}
1926
};
2027

21-
// TODO(AndrewL): Replace this with metric updates
22-
trace!("Received stress test message from {sender_peer_id:?} in {delay_seconds} seconds");
28+
// Use apollo_metrics for all metrics including labeled ones
29+
RECEIVE_MESSAGE_BYTES.set(received_message.len().into_f64());
30+
RECEIVE_MESSAGE_COUNT.increment(1);
31+
RECEIVE_MESSAGE_BYTES_SUM.increment(
32+
u64::try_from(received_message.len()).expect("Message length too large for u64"),
33+
);
34+
35+
// Use apollo_metrics histograms for latency measurements
36+
if delay_seconds.is_sign_positive() {
37+
RECEIVE_MESSAGE_DELAY_SECONDS.record(delay_seconds);
38+
} else {
39+
RECEIVE_MESSAGE_NEGATIVE_DELAY_SECONDS.record(-delay_seconds);
40+
}
2341
}

crates/apollo_network_benchmark/src/bin/broadcast_network_stress_test_node/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ mod message_test;
1212

1313
mod handlers;
1414
mod message;
15+
pub mod metrics;
1516
mod protocol;
1617
mod stress_test_node;
1718

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use apollo_metrics::define_metrics;
2+
3+
define_metrics!(
4+
Infra => {
5+
MetricGauge { RECEIVE_MESSAGE_BYTES, "receive_message_bytes", "Size of the stress test received message in bytes" },
6+
MetricCounter { RECEIVE_MESSAGE_COUNT, "receive_message_count", "Number of stress test messages received via broadcast", init = 0 },
7+
MetricCounter { RECEIVE_MESSAGE_BYTES_SUM, "receive_message_bytes_sum", "Sum of the stress test messages received via broadcast", init = 0 },
8+
MetricHistogram { RECEIVE_MESSAGE_DELAY_SECONDS, "receive_message_delay_seconds", "Message delay in seconds" },
9+
MetricHistogram { RECEIVE_MESSAGE_NEGATIVE_DELAY_SECONDS, "receive_message_negative_delay_seconds", "Negative message delay in seconds" },
10+
},
11+
);

0 commit comments

Comments
 (0)