Skip to content

Commit 21feabb

Browse files
committed
refactor: remove macros
1 parent fc848fc commit 21feabb

File tree

2 files changed

+59
-58
lines changed

2 files changed

+59
-58
lines changed

iroh/src/magicsock.rs

Lines changed: 59 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ use crate::{
7474
disco::{self, CallMeMaybe, SendAddr},
7575
discovery::{Discovery, DiscoveryItem, DiscoverySubscribers, NodeData, UserData},
7676
key::{public_ed_box, secret_ed_box, DecryptionError, SharedSecret},
77-
metrics::{inc, inc_by, EndpointMetrics},
77+
metrics::EndpointMetrics,
7878
net_report::{self, IpMappedAddresses},
7979
watchable::{Watchable, Watcher},
8080
};
@@ -473,10 +473,16 @@ impl MagicSock {
473473
.magicsock
474474
.send_data
475475
.inc_by(transmit.contents.len() as _);
476-
inc_by!(self, send_data, transmit.contents.len() as _);
476+
self.metrics
477+
.magicsock
478+
.send_data
479+
.inc_by(transmit.contents.len() as _);
477480

478481
if self.is_closed() {
479-
inc_by!(self, send_data_network_down, transmit.contents.len() as _);
482+
self.metrics
483+
.magicsock
484+
.send_data_network_down
485+
.inc_by(transmit.contents.len() as _);
480486
return Err(io::Error::new(
481487
io::ErrorKind::NotConnected,
482488
"connection closed",
@@ -728,9 +734,9 @@ impl MagicSock {
728734
conn.try_send(transmit)?;
729735
let total_bytes: u64 = transmit.contents.len() as u64;
730736
if addr.is_ipv6() {
731-
inc_by!(self, send_ipv6, total_bytes);
737+
self.metrics.magicsock.send_ipv6.inc_by(total_bytes);
732738
} else {
733-
inc_by!(self, send_ipv4, total_bytes);
739+
self.metrics.magicsock.send_ipv4.inc_by(total_bytes);
734740
}
735741
Ok(())
736742
}
@@ -875,7 +881,7 @@ impl MagicSock {
875881
let mut quic_datagram_count = 0;
876882
if meta.len > meta.stride {
877883
trace!(%meta.len, %meta.stride, "GRO datagram received");
878-
inc!(self, recv_gro_datagrams);
884+
self.metrics.magicsock.recv_gro_datagrams.inc();
879885
}
880886

881887
// Chunk through the datagrams in this GRO payload to find disco and stun
@@ -909,9 +915,15 @@ impl MagicSock {
909915
} else {
910916
trace!(src = %meta.addr, len = %meta.stride, "UDP recv: quic packet");
911917
if from_ipv4 {
912-
inc_by!(self, recv_data_ipv4, datagram.len() as _);
918+
self.metrics
919+
.magicsock
920+
.recv_data_ipv4
921+
.inc_by(datagram.len() as _);
913922
} else {
914-
inc_by!(self, recv_data_ipv6, datagram.len() as _);
923+
self.metrics
924+
.magicsock
925+
.recv_data_ipv6
926+
.inc_by(datagram.len() as _);
915927
}
916928
quic_datagram_count += 1;
917929
buf_contains_quic_datagrams = true;
@@ -968,7 +980,10 @@ impl MagicSock {
968980
}
969981

970982
if quic_packets_total > 0 {
971-
inc_by!(self, recv_datagrams, quic_packets_total as _);
983+
self.metrics
984+
.magicsock
985+
.recv_datagrams
986+
.inc_by(quic_packets_total as _);
972987
trace!("UDP recv: {} packets", quic_packets_total);
973988
}
974989
}
@@ -1008,7 +1023,10 @@ impl MagicSock {
10081023
continue;
10091024
}
10101025
Some((node_id, meta, buf)) => {
1011-
inc_by!(self, recv_data_relay, buf.len() as _);
1026+
self.metrics
1027+
.magicsock
1028+
.recv_data_relay
1029+
.inc_by(buf.len() as _);
10121030
trace!(
10131031
src = %meta.addr,
10141032
node = %node_id.fmt_short(),
@@ -1027,7 +1045,7 @@ impl MagicSock {
10271045

10281046
// If we have any msgs to report, they are in the first `num_msgs_total` slots
10291047
if num_msgs > 0 {
1030-
inc_by!(self, recv_datagrams, num_msgs as _);
1048+
self.metrics.magicsock.recv_datagrams.inc_by(num_msgs as _);
10311049
Poll::Ready(Ok(num_msgs))
10321050
} else {
10331051
Poll::Pending
@@ -1120,7 +1138,7 @@ impl MagicSock {
11201138
Ok(dm) => dm,
11211139
Err(DiscoBoxError::Open(err)) => {
11221140
warn!(?err, "failed to open disco box");
1123-
inc!(self, recv_disco_bad_key);
1141+
self.metrics.magicsock.recv_disco_bad_key.inc();
11241142
return;
11251143
}
11261144
Err(DiscoBoxError::Parse(err)) => {
@@ -1130,32 +1148,32 @@ impl MagicSock {
11301148
// understand. Not even worth logging about, lest it
11311149
// be too spammy for old clients.
11321150

1133-
inc!(self, recv_disco_bad_parse);
1151+
self.metrics.magicsock.recv_disco_bad_parse.inc();
11341152
debug!(?err, "failed to parse disco message");
11351153
return;
11361154
}
11371155
};
11381156

11391157
if src.is_relay() {
1140-
inc!(self, recv_disco_relay);
1158+
self.metrics.magicsock.recv_disco_relay.inc();
11411159
} else {
1142-
inc!(self, recv_disco_udp);
1160+
self.metrics.magicsock.recv_disco_udp.inc();
11431161
}
11441162

11451163
let span = trace_span!("handle_disco", ?dm);
11461164
let _guard = span.enter();
11471165
trace!("receive disco message");
11481166
match dm {
11491167
disco::Message::Ping(ping) => {
1150-
inc!(self, recv_disco_ping);
1168+
self.metrics.magicsock.recv_disco_ping.inc();
11511169
self.handle_ping(ping, sender, src);
11521170
}
11531171
disco::Message::Pong(pong) => {
1154-
inc!(self, recv_disco_pong);
1172+
self.metrics.magicsock.recv_disco_pong.inc();
11551173
self.node_map.handle_pong(sender, &src, pong);
11561174
}
11571175
disco::Message::CallMeMaybe(cm) => {
1158-
inc!(self, recv_disco_call_me_maybe);
1176+
self.metrics.magicsock.recv_disco_call_me_maybe.inc();
11591177
match src {
11601178
DiscoMessageSource::Relay { url, .. } => {
11611179
event!(
@@ -1355,7 +1373,7 @@ impl MagicSock {
13551373
fn send_disco_message_relay(&self, url: &RelayUrl, dst: NodeId, msg: disco::Message) -> bool {
13561374
debug!(node = %dst.fmt_short(), %url, %msg, "send disco message (relay)");
13571375
let pkt = self.encode_disco_message(dst, &msg);
1358-
inc!(self, send_disco_relay);
1376+
self.metrics.magicsock.send_disco_relay.inc();
13591377
match self.try_send_relay(url, dst, smallvec![pkt]) {
13601378
Ok(()) => {
13611379
if let disco::Message::CallMeMaybe(CallMeMaybe { ref my_numbers }) = msg {
@@ -1367,8 +1385,8 @@ impl MagicSock {
13671385
addrs = ?my_numbers,
13681386
);
13691387
}
1370-
inc!(self, sent_disco_relay);
1371-
disco_message_sent(&self, &msg);
1388+
self.metrics.magicsock.sent_disco_relay.inc();
1389+
disco_message_sent(&msg, &self.metrics.magicsock);
13721390
true
13731391
}
13741392
Err(_) => false,
@@ -1419,7 +1437,7 @@ impl MagicSock {
14191437
let pkt = self.encode_disco_message(dst_node, msg);
14201438
// TODO: These metrics will be wrong with the poll impl
14211439
// Also - do we need it? I'd say the `sent_disco_udp` below is enough.
1422-
inc!(self, send_disco_udp);
1440+
self.metrics.magicsock.send_disco_udp.inc();
14231441
let transmit = quinn_udp::Transmit {
14241442
destination: dst,
14251443
contents: &pkt,
@@ -1431,8 +1449,8 @@ impl MagicSock {
14311449
match sent {
14321450
Ok(()) => {
14331451
trace!(%dst, node = %dst_node.fmt_short(), %msg, "sent disco message");
1434-
inc!(self, sent_disco_udp);
1435-
disco_message_sent(&self, msg);
1452+
self.metrics.magicsock.sent_disco_udp.inc();
1453+
disco_message_sent(msg, &self.metrics.magicsock);
14361454
Ok(())
14371455
}
14381456
Err(err) => {
@@ -1524,7 +1542,7 @@ impl MagicSock {
15241542
#[instrument(skip_all)]
15251543
fn re_stun(&self, why: &'static str) {
15261544
debug!("re_stun: {}", why);
1527-
inc!(self, re_stun_calls);
1545+
self.metrics.magicsock.re_stun_calls.inc();
15281546
self.direct_addr_update_state.schedule_run(why);
15291547
}
15301548

@@ -2443,7 +2461,7 @@ impl Actor {
24432461
let mut portmap_watcher_closed = false;
24442462
let mut link_change_closed = false;
24452463
loop {
2446-
inc!(self.msock, actor_tick_main);
2464+
self.msock.metrics.magicsock.actor_tick_main.inc();
24472465
#[cfg(not(wasm_browser))]
24482466
let portmap_watcher_changed = portmap_watcher.changed();
24492467
#[cfg(wasm_browser)]
@@ -2458,36 +2476,36 @@ impl Actor {
24582476
msg = self.msg_receiver.recv(), if !receiver_closed => {
24592477
let Some(msg) = msg else {
24602478
trace!("tick: magicsock receiver closed");
2461-
inc!(self.msock, actor_tick_other);
2479+
self.msock.metrics.magicsock.actor_tick_other.inc();
24622480

24632481
receiver_closed = true;
24642482
continue;
24652483
};
24662484

24672485
trace!(?msg, "tick: msg");
2468-
inc!(self.msock, actor_tick_msg);
2486+
self.msock.metrics.magicsock.actor_tick_msg.inc();
24692487
if self.handle_actor_message(msg).await {
24702488
return Ok(());
24712489
}
24722490
}
24732491
tick = self.periodic_re_stun_timer.tick() => {
24742492
trace!("tick: re_stun {:?}", tick);
2475-
inc!(self.msock, actor_tick_re_stun);
2493+
self.msock.metrics.magicsock.actor_tick_re_stun.inc();
24762494
self.msock.re_stun("periodic");
24772495
}
24782496
change = portmap_watcher_changed, if !portmap_watcher_closed => {
24792497
#[cfg(not(wasm_browser))]
24802498
{
24812499
if change.is_err() {
24822500
trace!("tick: portmap watcher closed");
2483-
inc!(self.msock, actor_tick_other);
2501+
self.msock.metrics.magicsock.actor_tick_other.inc();
24842502

24852503
portmap_watcher_closed = true;
24862504
continue;
24872505
}
24882506

24892507
trace!("tick: portmap changed");
2490-
inc!(self.msock, actor_tick_portmap_changed);
2508+
self.msock.metrics.magicsock.actor_tick_portmap_changed.inc();
24912509
let new_external_address = *portmap_watcher.borrow();
24922510
debug!("external address updated: {new_external_address:?}");
24932511
self.msock.re_stun("portmap_updated");
@@ -2502,7 +2520,7 @@ impl Actor {
25022520
"tick: direct addr heartbeat {} direct addrs",
25032521
self.msock.node_map.node_count(),
25042522
);
2505-
inc!(self.msock, actor_tick_direct_addr_heartbeat);
2523+
self.msock.metrics.magicsock.actor_tick_direct_addr_heartbeat.inc();
25062524
// TODO: this might trigger too many packets at once, pace this
25072525

25082526
self.msock.node_map.prune_inactive();
@@ -2513,22 +2531,22 @@ impl Actor {
25132531
_ = direct_addr_update_receiver.changed() => {
25142532
let reason = *direct_addr_update_receiver.borrow();
25152533
trace!("tick: direct addr update receiver {:?}", reason);
2516-
inc!(self.msock, actor_tick_direct_addr_update_receiver);
2534+
self.msock.metrics.magicsock.actor_tick_direct_addr_update_receiver.inc();
25172535
if let Some(reason) = reason {
25182536
self.refresh_direct_addrs(reason).await;
25192537
}
25202538
}
25212539
is_major = link_change_r.recv(), if !link_change_closed => {
25222540
let Some(is_major) = is_major else {
25232541
trace!("tick: link change receiver closed");
2524-
inc!(self.msock, actor_tick_other);
2542+
self.msock.metrics.magicsock.actor_tick_other.inc();
25252543

25262544
link_change_closed = true;
25272545
continue;
25282546
};
25292547

25302548
trace!("tick: link change {}", is_major);
2531-
inc!(self.msock, actor_link_change);
2549+
self.msock.metrics.magicsock.actor_link_change.inc();
25322550
self.handle_network_change(is_major).await;
25332551
}
25342552
// Even if `discovery_events` yields `None`, it could begin to yield
@@ -2642,7 +2660,7 @@ impl Actor {
26422660
/// mistake to be made.
26432661
#[instrument(level = "debug", skip_all)]
26442662
async fn refresh_direct_addrs(&mut self, why: &'static str) {
2645-
inc!(self.msock, update_direct_addrs);
2663+
self.msock.metrics.magicsock.update_direct_addrs.inc();
26462664

26472665
debug!("starting direct addr update ({})", why);
26482666
#[cfg(not(wasm_browser))]
@@ -2949,7 +2967,7 @@ impl Actor {
29492967
let old_relay = self.msock.set_my_relay(relay_url.clone());
29502968

29512969
if let Some(ref relay_url) = relay_url {
2952-
inc!(self.msock, relay_home_change);
2970+
self.msock.metrics.magicsock.relay_home_change.inc();
29532971

29542972
// On change, notify all currently connected relay servers and
29552973
// start connecting to our home relay if we are not already.
@@ -3249,16 +3267,16 @@ impl std::fmt::Display for NodeIdMappedAddr {
32493267
}
32503268
}
32513269

3252-
fn disco_message_sent(msock: &MagicSock, msg: &disco::Message) {
3270+
fn disco_message_sent(msg: &disco::Message, metrics: &MagicsockMetrics) {
32533271
match msg {
32543272
disco::Message::Ping(_) => {
3255-
inc!(msock, sent_disco_ping);
3273+
metrics.sent_disco_ping.inc();
32563274
}
32573275
disco::Message::Pong(_) => {
3258-
inc!(msock, sent_disco_pong);
3276+
metrics.sent_disco_pong.inc();
32593277
}
32603278
disco::Message::CallMeMaybe(_) => {
3261-
inc!(msock, sent_disco_call_me_maybe);
3279+
metrics.sent_disco_call_me_maybe.inc();
32623280
}
32633281
}
32643282
}

iroh/src/metrics.rs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,3 @@ impl iroh_metrics::core::MetricSet for EndpointMetrics {
3131
"endpoint"
3232
}
3333
}
34-
35-
/// Increments the given counter or gauge by 1.
36-
macro_rules! inc {
37-
($msock:expr, $f:ident) => {
38-
$msock.metrics.magicsock.$f.inc()
39-
};
40-
}
41-
42-
/// Increments the given counter or gauge by `n`.
43-
macro_rules! inc_by {
44-
($msock:ident, $f:ident, $n:expr) => {
45-
$msock.metrics.magicsock.$f.inc_by($n)
46-
};
47-
}
48-
49-
pub(crate) use inc;
50-
pub(crate) use inc_by;

0 commit comments

Comments
 (0)