use iroh_metrics::{Counter, MetricsGroup};
use serde::{Deserialize, Serialize};
#[allow(missing_docs)]
#[derive(Debug, Default, Serialize, Deserialize, MetricsGroup)]
#[non_exhaustive]
#[metrics(name = "magicsock")]
pub struct Metrics {
pub update_direct_addrs: Counter,
pub send_ipv4: Counter,
pub send_ipv6: Counter,
pub send_relay: Counter,
pub send_relay_error: Counter,
pub send_data: Counter,
pub send_data_network_down: Counter,
pub recv_data_relay: Counter,
pub recv_data_ipv4: Counter,
pub recv_data_ipv6: Counter,
pub recv_datagrams: Counter,
pub recv_gro_datagrams: Counter,
pub send_disco_udp: Counter,
pub send_disco_relay: Counter,
pub sent_disco_udp: Counter,
pub sent_disco_relay: Counter,
pub sent_disco_ping: Counter,
pub sent_disco_pong: Counter,
pub sent_disco_call_me_maybe: Counter,
pub recv_disco_bad_key: Counter,
pub recv_disco_bad_parse: Counter,
pub recv_disco_udp: Counter,
pub recv_disco_relay: Counter,
pub recv_disco_ping: Counter,
pub recv_disco_pong: Counter,
pub recv_disco_call_me_maybe: Counter,
pub recv_disco_call_me_maybe_bad_disco: Counter,
pub relay_home_change: Counter,
pub num_direct_conns_added: Counter,
pub num_direct_conns_removed: Counter,
pub num_relay_conns_added: Counter,
pub num_relay_conns_removed: Counter,
pub actor_tick_main: Counter,
pub actor_tick_msg: Counter,
pub actor_tick_re_stun: Counter,
pub actor_tick_portmap_changed: Counter,
pub actor_tick_direct_addr_heartbeat: Counter,
pub actor_link_change: Counter,
pub actor_tick_other: Counter,
pub nodes_contacted: Counter,
pub nodes_contacted_directly: Counter,
pub connection_handshake_success: Counter,
pub connection_became_direct: Counter,
}