mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-13 07:23:46 +00:00
refactor: portal protocol metrics
This commit is contained in:
parent
d1b5606b00
commit
efa2e9002a
2 changed files with 73 additions and 63 deletions
|
|
@ -44,26 +44,6 @@ import (
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
messagesReceivedAccept metrics.Meter
|
|
||||||
messagesReceivedNodes metrics.Meter
|
|
||||||
messagesReceivedFindNodes metrics.Meter
|
|
||||||
messagesReceivedFindContent metrics.Meter
|
|
||||||
messagesReceivedContent metrics.Meter
|
|
||||||
messagesReceivedOffer metrics.Meter
|
|
||||||
messagesReceivedPing metrics.Meter
|
|
||||||
messagesReceivedPong metrics.Meter
|
|
||||||
|
|
||||||
messagesSentAccept metrics.Meter
|
|
||||||
messagesSentNodes metrics.Meter
|
|
||||||
messagesSentFindNodes metrics.Meter
|
|
||||||
messagesSentFindContent metrics.Meter
|
|
||||||
messagesSentContent metrics.Meter
|
|
||||||
messagesSentOffer metrics.Meter
|
|
||||||
messagesSentPing metrics.Meter
|
|
||||||
messagesSentPong metrics.Meter
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
||||||
// TalkResp message is a response message so the session is established and a
|
// TalkResp message is a response message so the session is established and a
|
||||||
|
|
@ -220,6 +200,8 @@ type PortalProtocol struct {
|
||||||
portMappingRegister chan *portMapping
|
portMappingRegister chan *portMapping
|
||||||
clock mclock.Clock
|
clock mclock.Clock
|
||||||
NAT nat.Interface
|
NAT nat.Interface
|
||||||
|
|
||||||
|
portalMetrics *portalMetrics
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultContentIdFunc(contentKey []byte) []byte {
|
func defaultContentIdFunc(contentKey []byte) []byte {
|
||||||
|
|
@ -259,23 +241,7 @@ func NewPortalProtocol(config *PortalProtocolConfig, protocolId portalwire.Proto
|
||||||
}
|
}
|
||||||
|
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedAccept = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/accept", nil)
|
protocol.portalMetrics = newPortalMetrics(protocolId.Name())
|
||||||
messagesReceivedNodes = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/nodes", nil)
|
|
||||||
messagesReceivedFindNodes = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/find_nodes", nil)
|
|
||||||
messagesReceivedFindContent = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/find_content", nil)
|
|
||||||
messagesReceivedContent = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/content", nil)
|
|
||||||
messagesReceivedOffer = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/offer", nil)
|
|
||||||
messagesReceivedPing = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/ping", nil)
|
|
||||||
messagesReceivedPong = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/received/pong", nil)
|
|
||||||
|
|
||||||
messagesSentAccept = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/accept", nil)
|
|
||||||
messagesSentNodes = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/nodes", nil)
|
|
||||||
messagesSentFindNodes = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/find_nodes", nil)
|
|
||||||
messagesSentFindContent = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/find_content", nil)
|
|
||||||
messagesSentContent = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/content", nil)
|
|
||||||
messagesSentOffer = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/offer", nil)
|
|
||||||
messagesSentPing = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/ping", nil)
|
|
||||||
messagesSentPong = metrics.NewRegisteredMeter("portal/"+protocolId.Name()+"/sent/pong", nil)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return protocol, nil
|
return protocol, nil
|
||||||
|
|
@ -470,7 +436,7 @@ func (p *PortalProtocol) pingInner(node *enode.Node) (*portalwire.Pong, error) {
|
||||||
|
|
||||||
p.Log.Trace(">> PING/"+p.protocolName, "protocol", p.protocolName, "ip", p.Self().IP().String(), "source", p.Self().ID(), "target", node.ID(), "ping", pingRequest)
|
p.Log.Trace(">> PING/"+p.protocolName, "protocol", p.protocolName, "ip", p.Self().IP().String(), "source", p.Self().ID(), "target", node.ID(), "ping", pingRequest)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentPing.Mark(1)
|
p.portalMetrics.messagesSentPing.Mark(1)
|
||||||
}
|
}
|
||||||
pingRequestBytes, err := pingRequest.MarshalSSZ()
|
pingRequestBytes, err := pingRequest.MarshalSSZ()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -489,7 +455,7 @@ func (p *PortalProtocol) pingInner(node *enode.Node) (*portalwire.Pong, error) {
|
||||||
|
|
||||||
p.Log.Trace("<< PONG/"+p.protocolName, "source", p.Self().ID(), "target", node.ID(), "res", talkResp)
|
p.Log.Trace("<< PONG/"+p.protocolName, "source", p.Self().ID(), "target", node.ID(), "res", talkResp)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedPong.Mark(1)
|
p.portalMetrics.messagesReceivedPong.Mark(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
return p.processPong(node, talkResp)
|
return p.processPong(node, talkResp)
|
||||||
|
|
@ -511,7 +477,7 @@ func (p *PortalProtocol) findNodes(node *enode.Node, distances []uint) ([]*enode
|
||||||
|
|
||||||
p.Log.Trace(">> FIND_NODES/"+p.protocolName, "id", node.ID(), "findNodes", findNodes)
|
p.Log.Trace(">> FIND_NODES/"+p.protocolName, "id", node.ID(), "findNodes", findNodes)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentFindNodes.Mark(1)
|
p.portalMetrics.messagesSentFindNodes.Mark(1)
|
||||||
}
|
}
|
||||||
findNodesBytes, err := findNodes.MarshalSSZ()
|
findNodesBytes, err := findNodes.MarshalSSZ()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -539,7 +505,7 @@ func (p *PortalProtocol) findContent(node *enode.Node, contentKey []byte) (byte,
|
||||||
|
|
||||||
p.Log.Trace(">> FIND_CONTENT/"+p.protocolName, "id", node.ID(), "findContent", findContent)
|
p.Log.Trace(">> FIND_CONTENT/"+p.protocolName, "id", node.ID(), "findContent", findContent)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentFindContent.Mark(1)
|
p.portalMetrics.messagesSentFindContent.Mark(1)
|
||||||
}
|
}
|
||||||
findContentBytes, err := findContent.MarshalSSZ()
|
findContentBytes, err := findContent.MarshalSSZ()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -569,7 +535,7 @@ func (p *PortalProtocol) offer(node *enode.Node, offerRequest *OfferRequest) ([]
|
||||||
|
|
||||||
p.Log.Trace(">> OFFER/"+p.protocolName, "offer", offer)
|
p.Log.Trace(">> OFFER/"+p.protocolName, "offer", offer)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentOffer.Mark(1)
|
p.portalMetrics.messagesSentOffer.Mark(1)
|
||||||
}
|
}
|
||||||
offerBytes, err := offer.MarshalSSZ()
|
offerBytes, err := offer.MarshalSSZ()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -610,7 +576,7 @@ func (p *PortalProtocol) processOffer(target *enode.Node, resp []byte, request *
|
||||||
|
|
||||||
p.Log.Trace("<< ACCEPT/"+p.protocolName, "id", target.ID(), "accept", accept)
|
p.Log.Trace("<< ACCEPT/"+p.protocolName, "id", target.ID(), "accept", accept)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedAccept.Mark(1)
|
p.portalMetrics.messagesReceivedAccept.Mark(1)
|
||||||
}
|
}
|
||||||
isAdded := p.table.addFoundNode(target, true)
|
isAdded := p.table.addFoundNode(target, true)
|
||||||
if isAdded {
|
if isAdded {
|
||||||
|
|
@ -708,7 +674,7 @@ func (p *PortalProtocol) processOffer(target *enode.Node, resp []byte, request *
|
||||||
}
|
}
|
||||||
p.Log.Trace(">> CONTENT/"+p.protocolName, "id", target.ID(), "contents", contents, "size", written)
|
p.Log.Trace(">> CONTENT/"+p.protocolName, "id", target.ID(), "contents", contents, "size", written)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentContent.Mark(1)
|
p.portalMetrics.messagesSentContent.Mark(1)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -740,7 +706,7 @@ func (p *PortalProtocol) processContent(target *enode.Node, resp []byte) (byte,
|
||||||
|
|
||||||
p.Log.Trace("<< CONTENT/"+p.protocolName, "id", target.ID(), "content", content)
|
p.Log.Trace("<< CONTENT/"+p.protocolName, "id", target.ID(), "content", content)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedContent.Mark(1)
|
p.portalMetrics.messagesReceivedContent.Mark(1)
|
||||||
}
|
}
|
||||||
isAdded := p.table.addFoundNode(target, true)
|
isAdded := p.table.addFoundNode(target, true)
|
||||||
if isAdded {
|
if isAdded {
|
||||||
|
|
@ -758,7 +724,7 @@ func (p *PortalProtocol) processContent(target *enode.Node, resp []byte) (byte,
|
||||||
|
|
||||||
p.Log.Trace("<< CONTENT_CONNECTION_ID/"+p.protocolName, "id", target.ID(), "resp", common.Bytes2Hex(resp), "connIdMsg", connIdMsg)
|
p.Log.Trace("<< CONTENT_CONNECTION_ID/"+p.protocolName, "id", target.ID(), "resp", common.Bytes2Hex(resp), "connIdMsg", connIdMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedContent.Mark(1)
|
p.portalMetrics.messagesReceivedContent.Mark(1)
|
||||||
}
|
}
|
||||||
isAdded := p.table.addFoundNode(target, true)
|
isAdded := p.table.addFoundNode(target, true)
|
||||||
if isAdded {
|
if isAdded {
|
||||||
|
|
@ -798,7 +764,7 @@ func (p *PortalProtocol) processContent(target *enode.Node, resp []byte) (byte,
|
||||||
}
|
}
|
||||||
p.Log.Trace("<< CONTENT/"+p.protocolName, "id", target.ID(), "size", len(data), "data", data)
|
p.Log.Trace("<< CONTENT/"+p.protocolName, "id", target.ID(), "size", len(data), "data", data)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedContent.Mark(1)
|
p.portalMetrics.messagesReceivedContent.Mark(1)
|
||||||
}
|
}
|
||||||
return resp[1], data, nil
|
return resp[1], data, nil
|
||||||
case portalwire.ContentEnrsSelector:
|
case portalwire.ContentEnrsSelector:
|
||||||
|
|
@ -811,7 +777,7 @@ func (p *PortalProtocol) processContent(target *enode.Node, resp []byte) (byte,
|
||||||
|
|
||||||
p.Log.Trace("<< CONTENT_ENRS/"+p.protocolName, "id", target.ID(), "enrs", enrs)
|
p.Log.Trace("<< CONTENT_ENRS/"+p.protocolName, "id", target.ID(), "enrs", enrs)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedContent.Mark(1)
|
p.portalMetrics.messagesReceivedContent.Mark(1)
|
||||||
}
|
}
|
||||||
isAdded := p.table.addFoundNode(target, true)
|
isAdded := p.table.addFoundNode(target, true)
|
||||||
if isAdded {
|
if isAdded {
|
||||||
|
|
@ -879,7 +845,7 @@ func (p *PortalProtocol) filterNodes(target *enode.Node, enrs [][]byte, distance
|
||||||
|
|
||||||
p.Log.Trace("<< NODES/"+p.protocolName, "id", target.ID(), "total", len(enrs), "verified", verified, "nodes", nodes)
|
p.Log.Trace("<< NODES/"+p.protocolName, "id", target.ID(), "total", len(enrs), "verified", verified, "nodes", nodes)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedNodes.Mark(1)
|
p.portalMetrics.messagesReceivedNodes.Mark(1)
|
||||||
}
|
}
|
||||||
return nodes
|
return nodes
|
||||||
}
|
}
|
||||||
|
|
@ -899,7 +865,7 @@ func (p *PortalProtocol) processPong(target *enode.Node, resp []byte) (*portalwi
|
||||||
|
|
||||||
p.Log.Trace("<< PONG_RESPONSE/"+p.protocolName, "id", target.ID(), "pong", pong)
|
p.Log.Trace("<< PONG_RESPONSE/"+p.protocolName, "id", target.ID(), "pong", pong)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedPong.Mark(1)
|
p.portalMetrics.messagesReceivedPong.Mark(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
customPayload := &portalwire.PingPongCustomData{}
|
customPayload := &portalwire.PingPongCustomData{}
|
||||||
|
|
@ -910,7 +876,7 @@ func (p *PortalProtocol) processPong(target *enode.Node, resp []byte) (*portalwi
|
||||||
|
|
||||||
p.Log.Trace("<< PONG_RESPONSE/"+p.protocolName, "id", target.ID(), "pong", pong, "customPayload", customPayload)
|
p.Log.Trace("<< PONG_RESPONSE/"+p.protocolName, "id", target.ID(), "pong", pong, "customPayload", customPayload)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedPong.Mark(1)
|
p.portalMetrics.messagesReceivedPong.Mark(1)
|
||||||
}
|
}
|
||||||
isAdded := p.table.addFoundNode(target, true)
|
isAdded := p.table.addFoundNode(target, true)
|
||||||
if isAdded {
|
if isAdded {
|
||||||
|
|
@ -953,7 +919,7 @@ func (p *PortalProtocol) handleTalkRequest(id enode.ID, addr *net.UDPAddr, msg [
|
||||||
|
|
||||||
p.Log.Trace("<< PING/"+p.protocolName, "protocol", p.protocolName, "source", id, "pingRequest", pingRequest)
|
p.Log.Trace("<< PING/"+p.protocolName, "protocol", p.protocolName, "source", id, "pingRequest", pingRequest)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedPing.Mark(1)
|
p.portalMetrics.messagesReceivedPing.Mark(1)
|
||||||
}
|
}
|
||||||
resp, err := p.handlePing(id, pingRequest)
|
resp, err := p.handlePing(id, pingRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -972,7 +938,7 @@ func (p *PortalProtocol) handleTalkRequest(id enode.ID, addr *net.UDPAddr, msg [
|
||||||
|
|
||||||
p.Log.Trace("<< FIND_NODES/"+p.protocolName, "protocol", p.protocolName, "source", id, "findNodesRequest", findNodesRequest)
|
p.Log.Trace("<< FIND_NODES/"+p.protocolName, "protocol", p.protocolName, "source", id, "findNodesRequest", findNodesRequest)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedFindNodes.Mark(1)
|
p.portalMetrics.messagesReceivedFindNodes.Mark(1)
|
||||||
}
|
}
|
||||||
resp, err := p.handleFindNodes(addr, findNodesRequest)
|
resp, err := p.handleFindNodes(addr, findNodesRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -991,7 +957,7 @@ func (p *PortalProtocol) handleTalkRequest(id enode.ID, addr *net.UDPAddr, msg [
|
||||||
|
|
||||||
p.Log.Trace("<< FIND_CONTENT/"+p.protocolName, "protocol", p.protocolName, "source", id, "findContentRequest", findContentRequest)
|
p.Log.Trace("<< FIND_CONTENT/"+p.protocolName, "protocol", p.protocolName, "source", id, "findContentRequest", findContentRequest)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedFindContent.Mark(1)
|
p.portalMetrics.messagesReceivedFindContent.Mark(1)
|
||||||
}
|
}
|
||||||
resp, err := p.handleFindContent(id, addr, findContentRequest)
|
resp, err := p.handleFindContent(id, addr, findContentRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -1010,7 +976,7 @@ func (p *PortalProtocol) handleTalkRequest(id enode.ID, addr *net.UDPAddr, msg [
|
||||||
|
|
||||||
p.Log.Trace("<< OFFER/"+p.protocolName, "protocol", p.protocolName, "source", id, "offerRequest", offerRequest)
|
p.Log.Trace("<< OFFER/"+p.protocolName, "protocol", p.protocolName, "source", id, "offerRequest", offerRequest)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedOffer.Mark(1)
|
p.portalMetrics.messagesReceivedOffer.Mark(1)
|
||||||
}
|
}
|
||||||
resp, err := p.handleOffer(id, addr, offerRequest)
|
resp, err := p.handleOffer(id, addr, offerRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -1054,7 +1020,7 @@ func (p *PortalProtocol) handlePing(id enode.ID, ping *portalwire.Ping) ([]byte,
|
||||||
|
|
||||||
p.Log.Trace(">> PONG/"+p.protocolName, "protocol", p.protocolName, "source", id, "pong", pong)
|
p.Log.Trace(">> PONG/"+p.protocolName, "protocol", p.protocolName, "source", id, "pong", pong)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentPong.Mark(1)
|
p.portalMetrics.messagesSentPong.Mark(1)
|
||||||
}
|
}
|
||||||
pongBytes, err := pong.MarshalSSZ()
|
pongBytes, err := pong.MarshalSSZ()
|
||||||
|
|
||||||
|
|
@ -1090,7 +1056,7 @@ func (p *PortalProtocol) handleFindNodes(fromAddr *net.UDPAddr, request *portalw
|
||||||
|
|
||||||
p.Log.Trace(">> NODES/"+p.protocolName, "protocol", p.protocolName, "source", fromAddr, "nodes", nodesMsg)
|
p.Log.Trace(">> NODES/"+p.protocolName, "protocol", p.protocolName, "source", fromAddr, "nodes", nodesMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentNodes.Mark(1)
|
p.portalMetrics.messagesSentNodes.Mark(1)
|
||||||
}
|
}
|
||||||
nodesMsgBytes, err := nodesMsg.MarshalSSZ()
|
nodesMsgBytes, err := nodesMsg.MarshalSSZ()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -1144,7 +1110,7 @@ func (p *PortalProtocol) handleFindContent(id enode.ID, addr *net.UDPAddr, reque
|
||||||
|
|
||||||
p.Log.Trace(">> CONTENT_ENRS/"+p.protocolName, "protocol", p.protocolName, "source", addr, "enrs", enrsMsg)
|
p.Log.Trace(">> CONTENT_ENRS/"+p.protocolName, "protocol", p.protocolName, "source", addr, "enrs", enrsMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentContent.Mark(1)
|
p.portalMetrics.messagesSentContent.Mark(1)
|
||||||
}
|
}
|
||||||
var enrsMsgBytes []byte
|
var enrsMsgBytes []byte
|
||||||
enrsMsgBytes, err = enrsMsg.MarshalSSZ()
|
enrsMsgBytes, err = enrsMsg.MarshalSSZ()
|
||||||
|
|
@ -1168,7 +1134,7 @@ func (p *PortalProtocol) handleFindContent(id enode.ID, addr *net.UDPAddr, reque
|
||||||
|
|
||||||
p.Log.Trace(">> CONTENT_RAW/"+p.protocolName, "protocol", p.protocolName, "source", addr, "content", rawContentMsg)
|
p.Log.Trace(">> CONTENT_RAW/"+p.protocolName, "protocol", p.protocolName, "source", addr, "content", rawContentMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentContent.Mark(1)
|
p.portalMetrics.messagesSentContent.Mark(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
var rawContentMsgBytes []byte
|
var rawContentMsgBytes []byte
|
||||||
|
|
@ -1244,7 +1210,7 @@ func (p *PortalProtocol) handleFindContent(id enode.ID, addr *net.UDPAddr, reque
|
||||||
|
|
||||||
p.Log.Trace(">> CONTENT_CONNECTION_ID/"+p.protocolName, "protocol", p.protocolName, "source", addr, "connId", connIdMsg)
|
p.Log.Trace(">> CONTENT_CONNECTION_ID/"+p.protocolName, "protocol", p.protocolName, "source", addr, "connId", connIdMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentContent.Mark(1)
|
p.portalMetrics.messagesSentContent.Mark(1)
|
||||||
}
|
}
|
||||||
var connIdMsgBytes []byte
|
var connIdMsgBytes []byte
|
||||||
connIdMsgBytes, err = connIdMsg.MarshalSSZ()
|
connIdMsgBytes, err = connIdMsg.MarshalSSZ()
|
||||||
|
|
@ -1275,7 +1241,7 @@ func (p *PortalProtocol) handleOffer(id enode.ID, addr *net.UDPAddr, request *po
|
||||||
|
|
||||||
p.Log.Trace(">> ACCEPT/"+p.protocolName, "protocol", p.protocolName, "source", addr, "accept", acceptMsg)
|
p.Log.Trace(">> ACCEPT/"+p.protocolName, "protocol", p.protocolName, "source", addr, "accept", acceptMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentAccept.Mark(1)
|
p.portalMetrics.messagesSentAccept.Mark(1)
|
||||||
}
|
}
|
||||||
var acceptMsgBytes []byte
|
var acceptMsgBytes []byte
|
||||||
acceptMsgBytes, err = acceptMsg.MarshalSSZ()
|
acceptMsgBytes, err = acceptMsg.MarshalSSZ()
|
||||||
|
|
@ -1353,7 +1319,7 @@ func (p *PortalProtocol) handleOffer(id enode.ID, addr *net.UDPAddr, request *po
|
||||||
}
|
}
|
||||||
p.Log.Trace("<< OFFER_CONTENT/"+p.protocolName, "id", id, "size", len(data), "data", data)
|
p.Log.Trace("<< OFFER_CONTENT/"+p.protocolName, "id", id, "size", len(data), "data", data)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesReceivedContent.Mark(1)
|
p.portalMetrics.messagesReceivedContent.Mark(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = p.handleOfferedContents(id, contentKeys, data)
|
err = p.handleOfferedContents(id, contentKeys, data)
|
||||||
|
|
@ -1379,7 +1345,7 @@ func (p *PortalProtocol) handleOffer(id enode.ID, addr *net.UDPAddr, request *po
|
||||||
|
|
||||||
p.Log.Trace(">> ACCEPT/"+p.protocolName, "protocol", p.protocolName, "source", addr, "accept", acceptMsg)
|
p.Log.Trace(">> ACCEPT/"+p.protocolName, "protocol", p.protocolName, "source", addr, "accept", acceptMsg)
|
||||||
if metrics.Enabled {
|
if metrics.Enabled {
|
||||||
messagesSentAccept.Mark(1)
|
p.portalMetrics.messagesSentAccept.Mark(1)
|
||||||
}
|
}
|
||||||
var acceptMsgBytes []byte
|
var acceptMsgBytes []byte
|
||||||
acceptMsgBytes, err = acceptMsg.MarshalSSZ()
|
acceptMsgBytes, err = acceptMsg.MarshalSSZ()
|
||||||
|
|
|
||||||
44
p2p/discover/portal_protocol_metrics.go
Normal file
44
p2p/discover/portal_protocol_metrics.go
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
package discover
|
||||||
|
|
||||||
|
import "github.com/ethereum/go-ethereum/metrics"
|
||||||
|
|
||||||
|
type portalMetrics struct {
|
||||||
|
messagesReceivedAccept metrics.Meter
|
||||||
|
messagesReceivedNodes metrics.Meter
|
||||||
|
messagesReceivedFindNodes metrics.Meter
|
||||||
|
messagesReceivedFindContent metrics.Meter
|
||||||
|
messagesReceivedContent metrics.Meter
|
||||||
|
messagesReceivedOffer metrics.Meter
|
||||||
|
messagesReceivedPing metrics.Meter
|
||||||
|
messagesReceivedPong metrics.Meter
|
||||||
|
|
||||||
|
messagesSentAccept metrics.Meter
|
||||||
|
messagesSentNodes metrics.Meter
|
||||||
|
messagesSentFindNodes metrics.Meter
|
||||||
|
messagesSentFindContent metrics.Meter
|
||||||
|
messagesSentContent metrics.Meter
|
||||||
|
messagesSentOffer metrics.Meter
|
||||||
|
messagesSentPing metrics.Meter
|
||||||
|
messagesSentPong metrics.Meter
|
||||||
|
}
|
||||||
|
|
||||||
|
func newPortalMetrics(protocolName string) *portalMetrics {
|
||||||
|
return &portalMetrics{
|
||||||
|
messagesReceivedAccept: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/accept", nil),
|
||||||
|
messagesReceivedNodes: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/nodes", nil),
|
||||||
|
messagesReceivedFindNodes: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/find_nodes", nil),
|
||||||
|
messagesReceivedFindContent: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/find_content", nil),
|
||||||
|
messagesReceivedContent: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/content", nil),
|
||||||
|
messagesReceivedOffer: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/offer", nil),
|
||||||
|
messagesReceivedPing: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/ping", nil),
|
||||||
|
messagesReceivedPong: metrics.NewRegisteredMeter("portal/"+protocolName+"/received/pong", nil),
|
||||||
|
messagesSentAccept: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/accept", nil),
|
||||||
|
messagesSentNodes: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/nodes", nil),
|
||||||
|
messagesSentFindNodes: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/find_nodes", nil),
|
||||||
|
messagesSentFindContent: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/find_content", nil),
|
||||||
|
messagesSentContent: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/content", nil),
|
||||||
|
messagesSentOffer: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/offer", nil),
|
||||||
|
messagesSentPing: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/ping", nil),
|
||||||
|
messagesSentPong: metrics.NewRegisteredMeter("portal/"+protocolName+"/sent/pong", nil),
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue