mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 22:26:42 +00:00
eth: unregister per-peer metrics on peer close
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
parent
b31ad2e7e9
commit
0296361785
2 changed files with 19 additions and 0 deletions
|
|
@ -95,6 +95,7 @@ func NewPeer(version uint, p *p2p.Peer, rw p2p.MsgReadWriter, txpool TxPool) *Pe
|
|||
// clean it up!
|
||||
func (p *Peer) Close() {
|
||||
close(p.term)
|
||||
p.meters.Close()
|
||||
}
|
||||
|
||||
// ID retrieves the peer's unique identifier.
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ package eth
|
|||
import "github.com/ethereum/go-ethereum/metrics"
|
||||
|
||||
type peerMeters struct {
|
||||
base string
|
||||
reg metrics.Registry
|
||||
|
||||
txReceived *metrics.Meter
|
||||
txSent *metrics.Meter
|
||||
|
||||
|
|
@ -30,7 +33,13 @@ type peerMeters struct {
|
|||
|
||||
// newPeerMeters registers and returns peer-level meters.
|
||||
func newPeerMeters(base string, r metrics.Registry) *peerMeters {
|
||||
if r == nil {
|
||||
r = metrics.DefaultRegistry
|
||||
}
|
||||
return &peerMeters{
|
||||
base: base,
|
||||
reg: r,
|
||||
|
||||
txReceived: metrics.NewRegisteredMeter(base+"/txReceived", r),
|
||||
txSent: metrics.NewRegisteredMeter(base+"/txSent", r),
|
||||
|
||||
|
|
@ -40,3 +49,12 @@ func newPeerMeters(base string, r metrics.Registry) *peerMeters {
|
|||
txReplyOtherRejectMeter: metrics.NewRegisteredMeter(base+"/eth/fetcher/transaction/replies/otherreject", r),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *peerMeters) Close() {
|
||||
m.reg.Unregister(m.base + "/txReceived")
|
||||
m.reg.Unregister(m.base + "/txSent")
|
||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/in")
|
||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/known")
|
||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/underpriced")
|
||||
m.reg.Unregister(m.base + "/eth/fetcher/transaction/replies/otherreject")
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue