aboutsummaryrefslogtreecommitdiffstats
path: root/p2p
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2019-06-10 19:21:02 +0800
committerPéter Szilágyi <peterke@gmail.com>2019-06-11 14:49:13 +0800
commitb02958b9c57f35d0df085ed8e7057a52131373a3 (patch)
tree2097d29876191e20b710f323d1097d067a4a1c35 /p2p
parentf9c0e093ed83303aa1dff99f658120c34f29cae9 (diff)
downloadgo-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.go17
-rw-r--r--p2p/server.go5
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)