1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-07-02 03:28:25 +08:00

refactor: cleanup bitswap metrics collection

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
This commit is contained in:
Jakub Sztandera
2017-01-20 14:13:04 +01:00
parent 26cb182ba8
commit ce684ab73e

View File

@ -368,9 +368,7 @@ func (bs *Bitswap) ReceiveMessage(ctx context.Context, p peer.ID, incoming bsmsg
go func(b blocks.Block) { go func(b blocks.Block) {
defer wg.Done() defer wg.Done()
if err := bs.updateReceiveCounters(b); err != nil { bs.updateReceiveCounters(b)
return // ignore error, is either logged previously, or ErrAlreadyHaveBlock
}
k := b.Cid() k := b.Cid()
log.Event(ctx, "Bitswap.GetBlockRequest.End", k) log.Event(ctx, "Bitswap.GetBlockRequest.End", k)
@ -386,27 +384,27 @@ func (bs *Bitswap) ReceiveMessage(ctx context.Context, p peer.ID, incoming bsmsg
var ErrAlreadyHaveBlock = errors.New("already have block") var ErrAlreadyHaveBlock = errors.New("already have block")
func (bs *Bitswap) updateReceiveCounters(b blocks.Block) error { func (bs *Bitswap) updateReceiveCounters(b blocks.Block) {
bs.counterLk.Lock()
defer bs.counterLk.Unlock()
blkLen := len(b.RawData()) blkLen := len(b.RawData())
bs.allMetric.Observe(float64(blkLen))
bs.blocksRecvd++
has, err := bs.blockstore.Has(b.Cid()) has, err := bs.blockstore.Has(b.Cid())
if err != nil { if err != nil {
log.Infof("blockstore.Has error: %s", err) log.Infof("blockstore.Has error: %s", err)
return err return
} }
if err == nil && has {
bs.allMetric.Observe(float64(blkLen))
if has {
bs.dupMetric.Observe(float64(blkLen)) bs.dupMetric.Observe(float64(blkLen))
}
bs.counterLk.Lock()
defer bs.counterLk.Unlock()
bs.blocksRecvd++
if has {
bs.dupBlocksRecvd++ bs.dupBlocksRecvd++
bs.dupDataRecvd += uint64(blkLen) bs.dupDataRecvd += uint64(blkLen)
} }
if has {
return ErrAlreadyHaveBlock
}
return nil
} }
// Connected/Disconnected warns bitswap about peer connections // Connected/Disconnected warns bitswap about peer connections