mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 22:26:42 +00:00
eth: add base per-peer metrics
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
parent
0296361785
commit
d8dd9d4c20
3 changed files with 21 additions and 18 deletions
|
|
@ -448,6 +448,7 @@ func handleNewPooledTransactionHashes(backend Backend, msg Decoder, peer *Peer)
|
||||||
for _, hash := range ann.Hashes {
|
for _, hash := range ann.Hashes {
|
||||||
peer.markTransaction(hash)
|
peer.markTransaction(hash)
|
||||||
}
|
}
|
||||||
|
peer.meters.annReceived.Mark(int64(len(ann.Hashes)))
|
||||||
return backend.Handle(peer, ann)
|
return backend.Handle(peer, ann)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -524,6 +525,7 @@ func handlePooledTransactions(backend Backend, msg Decoder, peer *Peer) error {
|
||||||
}
|
}
|
||||||
requestTracker.Fulfil(peer.id, peer.version, PooledTransactionsMsg, txs.RequestId)
|
requestTracker.Fulfil(peer.id, peer.version, PooledTransactionsMsg, txs.RequestId)
|
||||||
|
|
||||||
|
peer.meters.pooledTxReceived.Mark(int64(len(txs.PooledTransactionsResponse)))
|
||||||
return backend.Handle(peer, &txs.PooledTransactionsResponse)
|
return backend.Handle(peer, &txs.PooledTransactionsResponse)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,7 @@ func (p *Peer) SendTransactions(txs types.Transactions) error {
|
||||||
for _, tx := range txs {
|
for _, tx := range txs {
|
||||||
p.knownTxs.Add(tx.Hash())
|
p.knownTxs.Add(tx.Hash())
|
||||||
}
|
}
|
||||||
|
p.meters.txSent.Mark(int64(len(txs)))
|
||||||
return p2p.Send(p.rw, TransactionsMsg, txs)
|
return p2p.Send(p.rw, TransactionsMsg, txs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -166,6 +167,7 @@ func (p *Peer) AsyncSendTransactions(hashes []common.Hash) {
|
||||||
func (p *Peer) sendPooledTransactionHashes(hashes []common.Hash, types []byte, sizes []uint32) error {
|
func (p *Peer) sendPooledTransactionHashes(hashes []common.Hash, types []byte, sizes []uint32) error {
|
||||||
// Mark all the transactions as known, but ensure we don't overflow our limits
|
// Mark all the transactions as known, but ensure we don't overflow our limits
|
||||||
p.knownTxs.Add(hashes...)
|
p.knownTxs.Add(hashes...)
|
||||||
|
p.meters.annSent.Mark(int64(len(hashes)))
|
||||||
return p2p.Send(p.rw, NewPooledTransactionHashesMsg, NewPooledTransactionHashesPacket{Types: types, Sizes: sizes, Hashes: hashes})
|
return p2p.Send(p.rw, NewPooledTransactionHashesMsg, NewPooledTransactionHashesPacket{Types: types, Sizes: sizes, Hashes: hashes})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -188,6 +190,7 @@ func (p *Peer) ReplyPooledTransactionsRLP(id uint64, hashes []common.Hash, txs [
|
||||||
p.knownTxs.Add(hashes...)
|
p.knownTxs.Add(hashes...)
|
||||||
|
|
||||||
// Not packed into PooledTransactionsResponse to avoid RLP decoding
|
// Not packed into PooledTransactionsResponse to avoid RLP decoding
|
||||||
|
p.meters.pooledTxSent.Mark(int64(len(txs)))
|
||||||
return p2p.Send(p.rw, PooledTransactionsMsg, &PooledTransactionsRLPPacket{
|
return p2p.Send(p.rw, PooledTransactionsMsg, &PooledTransactionsRLPPacket{
|
||||||
RequestId: id,
|
RequestId: id,
|
||||||
PooledTransactionsRLPResponse: txs,
|
PooledTransactionsRLPResponse: txs,
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,12 @@ type peerMeters struct {
|
||||||
base string
|
base string
|
||||||
reg metrics.Registry
|
reg metrics.Registry
|
||||||
|
|
||||||
txReceived *metrics.Meter
|
txReceived *metrics.Meter
|
||||||
txSent *metrics.Meter
|
txSent *metrics.Meter
|
||||||
|
pooledTxSent *metrics.Meter
|
||||||
txReplyInMeter *metrics.Meter
|
pooledTxReceived *metrics.Meter
|
||||||
txReplyKnownMeter *metrics.Meter
|
annReceived *metrics.Meter
|
||||||
txReplyUnderpricedMeter *metrics.Meter
|
annSent *metrics.Meter
|
||||||
txReplyOtherRejectMeter *metrics.Meter
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// newPeerMeters registers and returns peer-level meters.
|
// newPeerMeters registers and returns peer-level meters.
|
||||||
|
|
@ -40,21 +39,20 @@ func newPeerMeters(base string, r metrics.Registry) *peerMeters {
|
||||||
base: base,
|
base: base,
|
||||||
reg: r,
|
reg: r,
|
||||||
|
|
||||||
txReceived: metrics.NewRegisteredMeter(base+"/txReceived", r),
|
txReceived: metrics.NewRegisteredMeter(base+"/txReceived", r),
|
||||||
txSent: metrics.NewRegisteredMeter(base+"/txSent", r),
|
txSent: metrics.NewRegisteredMeter(base+"/txSent", r),
|
||||||
|
pooledTxSent: metrics.NewRegisteredMeter(base+"/pooledTxSent", r),
|
||||||
txReplyInMeter: metrics.NewRegisteredMeter(base+"/eth/fetcher/transaction/replies/in", r),
|
pooledTxReceived: metrics.NewRegisteredMeter(base+"/pooledTxReceived", r),
|
||||||
txReplyKnownMeter: metrics.NewRegisteredMeter(base+"/eth/fetcher/transaction/replies/known", r),
|
annReceived: metrics.NewRegisteredMeter(base+"/annReceived", r),
|
||||||
txReplyUnderpricedMeter: metrics.NewRegisteredMeter(base+"/eth/fetcher/transaction/replies/underpriced", r),
|
annSent: metrics.NewRegisteredMeter(base+"/annSent", r),
|
||||||
txReplyOtherRejectMeter: metrics.NewRegisteredMeter(base+"/eth/fetcher/transaction/replies/otherreject", r),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *peerMeters) Close() {
|
func (m *peerMeters) Close() {
|
||||||
m.reg.Unregister(m.base + "/txReceived")
|
m.reg.Unregister(m.base + "/txReceived")
|
||||||
m.reg.Unregister(m.base + "/txSent")
|
m.reg.Unregister(m.base + "/txSent")
|
||||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/in")
|
m.reg.Unregister(m.base + "/pooledTxSent")
|
||||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/known")
|
m.reg.Unregister(m.base + "/pooledTxReceived")
|
||||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/underpriced")
|
m.reg.Unregister(m.base + "/annReceived")
|
||||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/otherreject")
|
m.reg.Unregister(m.base + "/annSent")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue