diff options
author | Péter Szilágyi <peterke@gmail.com> | 2019-06-10 19:21:02 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2019-06-11 14:49:13 +0800 |
commit | b02958b9c57f35d0df085ed8e7057a52131373a3 (patch) | |
tree | 2097d29876191e20b710f323d1097d067a4a1c35 /p2p | |
parent | f9c0e093ed83303aa1dff99f658120c34f29cae9 (diff) | |
download | go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.gz go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.bz2 go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.lz go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.xz go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.zst go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.zip |
core, ethdb, metrics, p2p: expose various counter metrics for grafana
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/metrics.go | 17 | ||||
-rw-r--r-- | p2p/server.go | 5 |
2 files changed, 13 insertions, 9 deletions
diff --git a/p2p/metrics.go b/p2p/metrics.go index 2b1ad6df4..c04e5ab4c 100644 --- a/p2p/metrics.go +++ b/p2p/metrics.go @@ -25,18 +25,17 @@ import ( "sync/atomic" "time" - "github.com/ethereum/go-ethereum/p2p/enode" - "github.com/ethereum/go-ethereum/event" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/metrics" + "github.com/ethereum/go-ethereum/p2p/enode" ) const ( - MetricsInboundConnects = "p2p/InboundConnects" // Name for the registered inbound connects meter - MetricsInboundTraffic = "p2p/InboundTraffic" // Name for the registered inbound traffic meter - MetricsOutboundConnects = "p2p/OutboundConnects" // Name for the registered outbound connects meter - MetricsOutboundTraffic = "p2p/OutboundTraffic" // Name for the registered outbound traffic meter + MetricsInboundTraffic = "p2p/ingress" // Name for the registered inbound traffic meter + MetricsOutboundTraffic = "p2p/egress" // Name for the registered outbound traffic meter + MetricsOutboundConnects = "p2p/dials" // Name for the registered outbound connects meter + MetricsInboundConnects = "p2p/serves" // Name for the registered inbound connects meter MeteredPeerLimit = 1024 // This amount of peers are individually metered ) @@ -46,6 +45,7 @@ var ( ingressTrafficMeter = metrics.NewRegisteredMeter(MetricsInboundTraffic, nil) // Meter metering the cumulative ingress traffic egressConnectMeter = metrics.NewRegisteredMeter(MetricsOutboundConnects, nil) // Meter counting the egress connections egressTrafficMeter = metrics.NewRegisteredMeter(MetricsOutboundTraffic, nil) // Meter metering the cumulative egress traffic + activePeerCounter = metrics.NewRegisteredCounter("p2p/peers", nil) // Gauge tracking the current peer count PeerIngressRegistry = metrics.NewPrefixedChildRegistry(metrics.EphemeralRegistry, MetricsInboundTraffic+"/") // Registry containing the peer ingress PeerEgressRegistry = metrics.NewPrefixedChildRegistry(metrics.EphemeralRegistry, MetricsOutboundTraffic+"/") // Registry containing the peer egress @@ -124,6 +124,8 @@ func newMeteredConn(conn net.Conn, ingress bool, ip net.IP) net.Conn { } else { egressConnectMeter.Mark(1) } + activePeerCounter.Inc(1) + return &meteredConn{ Conn: conn, ip: ip, @@ -198,6 +200,7 @@ func (c *meteredConn) Close() error { IP: c.ip, Elapsed: time.Since(c.connected), }) + activePeerCounter.Dec(1) return err } id := c.id @@ -209,6 +212,7 @@ func (c *meteredConn) Close() error { IP: c.ip, ID: id, }) + activePeerCounter.Dec(1) return err } ingress, egress := uint64(c.ingressMeter.Count()), uint64(c.egressMeter.Count()) @@ -229,5 +233,6 @@ func (c *meteredConn) Close() error { Ingress: ingress, Egress: egress, }) + activePeerCounter.Dec(1) return err } diff --git a/p2p/server.go b/p2p/server.go index f17ef2c2b..b3494cc88 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -685,9 +685,8 @@ running: // This channel is used by RemoveTrustedPeer to remove an enode // from the trusted node set. srv.log.Trace("Removing trusted node", "node", n) - if _, ok := trusted[n.ID()]; ok { - delete(trusted, n.ID()) - } + delete(trusted, n.ID()) + // Unmark any already-connected peer as trusted if p, ok := peers[n.ID()]; ok { p.rw.set(trustedConn, false) |