mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 18:02:24 +00:00
swarm/network: counters for outgoing/incoming requests for chunks
This commit is contained in:
parent
0f3dc214e4
commit
5865adf67a
1 changed files with 15 additions and 0 deletions
|
|
@ -27,6 +27,7 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
"github.com/ethereum/go-ethereum/p2p/discover"
|
||||||
"github.com/ethereum/go-ethereum/swarm/network"
|
"github.com/ethereum/go-ethereum/swarm/network"
|
||||||
"github.com/ethereum/go-ethereum/swarm/storage"
|
"github.com/ethereum/go-ethereum/swarm/storage"
|
||||||
|
metrics "github.com/rcrowley/go-metrics"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
@ -34,6 +35,14 @@ const (
|
||||||
deliveryCap = 32
|
deliveryCap = 32
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
processReceivedChunksCount = metrics.NewRegisteredCounter("network.stream.received_chunks.count", nil)
|
||||||
|
handleRetrieveRequestMsgCount = metrics.NewRegisteredCounter("network.stream.handle_retrieve_request_msg.count", nil)
|
||||||
|
|
||||||
|
requestFromPeersCount = metrics.NewRegisteredCounter("network.stream.request_from_peers.count", nil)
|
||||||
|
requestFromPeersEachCount = metrics.NewRegisteredCounter("network.stream.request_from_peers_each.count", nil)
|
||||||
|
)
|
||||||
|
|
||||||
type Delivery struct {
|
type Delivery struct {
|
||||||
db *storage.DBAPI
|
db *storage.DBAPI
|
||||||
overlay network.Overlay
|
overlay network.Overlay
|
||||||
|
|
@ -129,6 +138,8 @@ type RetrieveRequestMsg struct {
|
||||||
|
|
||||||
func (d *Delivery) handleRetrieveRequestMsg(sp *Peer, req *RetrieveRequestMsg) error {
|
func (d *Delivery) handleRetrieveRequestMsg(sp *Peer, req *RetrieveRequestMsg) error {
|
||||||
log.Trace("received request", "peer", sp.ID(), "hash", req.Key)
|
log.Trace("received request", "peer", sp.ID(), "hash", req.Key)
|
||||||
|
handleRetrieveRequestMsgCount.Inc(1)
|
||||||
|
|
||||||
s, err := sp.getServer(NewStream(swarmChunkServerStreamName, "", false))
|
s, err := sp.getServer(NewStream(swarmChunkServerStreamName, "", false))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -194,6 +205,8 @@ func (d *Delivery) handleChunkDeliveryMsg(sp *Peer, req *ChunkDeliveryMsg) error
|
||||||
func (d *Delivery) processReceivedChunks() {
|
func (d *Delivery) processReceivedChunks() {
|
||||||
R:
|
R:
|
||||||
for req := range d.receiveC {
|
for req := range d.receiveC {
|
||||||
|
processReceivedChunksCount.Inc(1)
|
||||||
|
|
||||||
// this should be has locally
|
// this should be has locally
|
||||||
chunk, err := d.db.Get(req.Key)
|
chunk, err := d.db.Get(req.Key)
|
||||||
if !bytes.Equal(chunk.Key, req.Key) {
|
if !bytes.Equal(chunk.Key, req.Key) {
|
||||||
|
|
@ -227,6 +240,7 @@ R:
|
||||||
func (d *Delivery) RequestFromPeers(hash []byte, skipCheck bool, peersToSkip ...discover.NodeID) error {
|
func (d *Delivery) RequestFromPeers(hash []byte, skipCheck bool, peersToSkip ...discover.NodeID) error {
|
||||||
var success bool
|
var success bool
|
||||||
var err error
|
var err error
|
||||||
|
requestFromPeersCount.Inc(1)
|
||||||
d.overlay.EachConn(hash, 255, func(p network.OverlayConn, po int, nn bool) bool {
|
d.overlay.EachConn(hash, 255, func(p network.OverlayConn, po int, nn bool) bool {
|
||||||
spId := p.(network.Peer).ID()
|
spId := p.(network.Peer).ID()
|
||||||
for _, p := range peersToSkip {
|
for _, p := range peersToSkip {
|
||||||
|
|
@ -248,6 +262,7 @@ func (d *Delivery) RequestFromPeers(hash []byte, skipCheck bool, peersToSkip ...
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
requestFromPeersEachCount.Inc(1)
|
||||||
success = true
|
success = true
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue