core, ethdb, metrics, p2p: expose various counter metrics for grafana
This commit is contained in:
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user