feat(net) Add TransactionsManager Metrics (#769)

* Added TransactionsManager Metrics

* Remove tracking of peers

* Add propagated_transactions
This commit is contained in:
David Kulman
2023-01-08 18:38:07 +01:00
committed by GitHub
parent 5085ac7cfc
commit 05e9c79cc5
3 changed files with 16 additions and 0 deletions

View File

@ -32,3 +32,11 @@ pub struct NetworkMetrics {
/// Number of invalid/malformed messages received from peers /// Number of invalid/malformed messages received from peers
pub(crate) invalid_messages_received: Counter, pub(crate) invalid_messages_received: Counter,
} }
/// Metrics for the TransactionManager
#[derive(Metrics)]
#[metrics(scope = "network")]
pub struct TransactionsManagerMetrics {
/// Total number of propagated transactions
pub(crate) propagated_transactions: Counter,
}

View File

@ -4,6 +4,7 @@ use crate::{
cache::LruCache, cache::LruCache,
manager::NetworkEvent, manager::NetworkEvent,
message::{PeerRequest, PeerRequestSender}, message::{PeerRequest, PeerRequestSender},
metrics::TransactionsManagerMetrics,
network::NetworkHandleMessage, network::NetworkHandleMessage,
peers::ReputationChangeKind, peers::ReputationChangeKind,
NetworkHandle, NetworkHandle,
@ -101,6 +102,8 @@ pub struct TransactionsManager<Pool> {
pending_transactions: ReceiverStream<TxHash>, pending_transactions: ReceiverStream<TxHash>,
/// Incoming events from the [`NetworkManager`](crate::NetworkManager). /// Incoming events from the [`NetworkManager`](crate::NetworkManager).
transaction_events: UnboundedReceiverStream<NetworkTransactionEvent>, transaction_events: UnboundedReceiverStream<NetworkTransactionEvent>,
/// TransactionsManager metrics
metrics: TransactionsManagerMetrics,
} }
impl<Pool: TransactionPool> TransactionsManager<Pool> { impl<Pool: TransactionPool> TransactionsManager<Pool> {
@ -130,6 +133,7 @@ impl<Pool: TransactionPool> TransactionsManager<Pool> {
command_rx: UnboundedReceiverStream::new(command_rx), command_rx: UnboundedReceiverStream::new(command_rx),
pending_transactions: ReceiverStream::new(pending), pending_transactions: ReceiverStream::new(pending),
transaction_events: UnboundedReceiverStream::new(from_network), transaction_events: UnboundedReceiverStream::new(from_network),
metrics: Default::default(),
} }
} }
} }
@ -235,6 +239,9 @@ where
} }
} }
// Update propagated transactions metrics
self.metrics.propagated_transactions.increment(propagated.0.len() as u64);
propagated propagated
} }

View File

@ -89,6 +89,7 @@ This list may be non-exhaustive.
- `network.total_incoming_connections`: Total number of incoming connections handled - `network.total_incoming_connections`: Total number of incoming connections handled
- `network.total_outgoing_connections`: Total number of outgoing connections established - `network.total_outgoing_connections`: Total number of outgoing connections established
- `network.invalid_messages_received`: Number of invalid/malformed messages received from peers - `network.invalid_messages_received`: Number of invalid/malformed messages received from peers
- `network.propagated_transactions`: Total number of propagated transactions
[metrics]: https://docs.rs/metrics [metrics]: https://docs.rs/metrics
[metrics.Key]: https://docs.rs/metrics/latest/metrics/struct.Key.html [metrics.Key]: https://docs.rs/metrics/latest/metrics/struct.Key.html