aboutsummaryrefslogtreecommitdiffstats
path: root/p2p
diff options
context:
space:
mode:
authorDmitry Shulyak <yashulyak@gmail.com>2018-05-29 19:46:09 +0800
committerFelix Lange <fjl@users.noreply.github.com>2018-05-29 19:46:09 +0800
commit7677ec1f3414c1e3712bf33598f8780c3b76742b (patch)
tree821fd6567acc495b35d35f73f4f12a67bb6894b7 /p2p
parent84f8c0cc1fbe1ab9c128555392a82ba609820fef (diff)
downloaddexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.tar
dexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.tar.gz
dexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.tar.bz2
dexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.tar.lz
dexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.tar.xz
dexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.tar.zst
dexon-7677ec1f3414c1e3712bf33598f8780c3b76742b.zip
p2p/discv5: add egress/ingress traffic metrics to discv5 udp transport (#16369)
Diffstat (limited to 'p2p')
-rw-r--r--p2p/discv5/metrics.go8
-rw-r--r--p2p/discv5/udp.go5
2 files changed, 12 insertions, 1 deletions
diff --git a/p2p/discv5/metrics.go b/p2p/discv5/metrics.go
new file mode 100644
index 000000000..cb11d7eac
--- /dev/null
+++ b/p2p/discv5/metrics.go
@@ -0,0 +1,8 @@
+package discv5
+
+import "github.com/ethereum/go-ethereum/metrics"
+
+var (
+ ingressTrafficMeter = metrics.NewRegisteredMeter("discv5/InboundTraffic", nil)
+ egressTrafficMeter = metrics.NewRegisteredMeter("discv5/OutboundTraffic", nil)
+)
diff --git a/p2p/discv5/udp.go b/p2p/discv5/udp.go
index 09e5f8b37..49e1cb811 100644
--- a/p2p/discv5/udp.go
+++ b/p2p/discv5/udp.go
@@ -334,8 +334,10 @@ func (t *udp) sendPacket(toid NodeID, toaddr *net.UDPAddr, ptype byte, req inter
return hash, err
}
log.Trace(fmt.Sprintf(">>> %v to %x@%v", nodeEvent(ptype), toid[:8], toaddr))
- if _, err = t.conn.WriteToUDP(packet, toaddr); err != nil {
+ if nbytes, err := t.conn.WriteToUDP(packet, toaddr); err != nil {
log.Trace(fmt.Sprint("UDP send failed:", err))
+ } else {
+ egressTrafficMeter.Mark(int64(nbytes))
}
//fmt.Println(err)
return hash, err
@@ -374,6 +376,7 @@ func (t *udp) readLoop() {
buf := make([]byte, 1280)
for {
nbytes, from, err := t.conn.ReadFromUDP(buf)
+ ingressTrafficMeter.Mark(int64(nbytes))
if netutil.IsTemporaryError(err) {
// Ignore temporary read errors.
log.Debug(fmt.Sprintf("Temporary read error: %v", err))