From acfaf9ac8953c13c9a3b925c20bfb046ca305d60 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Fri, 20 Jan 2017 18:40:47 +0100 Subject: [PATCH] Introduce sent blocks histogram License: MIT Signed-off-by: Jakub Sztandera --- exchange/bitswap/bitswap.go | 4 ++-- exchange/bitswap/wantmanager.go | 32 +++++++++++++++++++------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/exchange/bitswap/bitswap.go b/exchange/bitswap/bitswap.go index 46cc4dbd8..7e565e837 100644 --- a/exchange/bitswap/bitswap.go +++ b/exchange/bitswap/bitswap.go @@ -79,9 +79,9 @@ func New(parent context.Context, p peer.ID, network bsnet.BitSwapNetwork, // exclusively. We should probably find another way to share logging data ctx, cancelFunc := context.WithCancel(parent) ctx = metrics.CtxSubScope(ctx, "bitswap") - dupHist := metrics.NewCtx(ctx, "dup_blocks_bytes", "Summary of duplicate"+ + dupHist := metrics.NewCtx(ctx, "recv_dup_blocks_bytes", "Summary of duplicate"+ " data blocks recived").Histogram(metricsBuckets) - allHist := metrics.NewCtx(ctx, "all_blocks_bytes", "Summary of all"+ + allHist := metrics.NewCtx(ctx, "recv_all_blocks_bytes", "Summary of all"+ " data blocks recived").Histogram(metricsBuckets) notif := notifications.New() diff --git a/exchange/bitswap/wantmanager.go b/exchange/bitswap/wantmanager.go index a9afc3cd1..555debf2c 100644 --- a/exchange/bitswap/wantmanager.go +++ b/exchange/bitswap/wantmanager.go @@ -30,24 +30,28 @@ type WantManager struct { ctx context.Context cancel func() - metricWantlist metrics.Gauge + wantlistGauge metrics.Gauge + sentHistogram metrics.Histogram } func NewWantManager(ctx context.Context, network bsnet.BitSwapNetwork) *WantManager { ctx, cancel := context.WithCancel(ctx) wantlistGauge := metrics.NewCtx(ctx, "wanlist_total", "Number of items in wantlist.").Gauge() + sentHistogram := metrics.NewCtx(ctx, "sent_all_blocks_bytes", "Histogram of blocks sent by"+ + " this bitswap").Histogram(metricsBuckets) return &WantManager{ - incoming: make(chan []*bsmsg.Entry, 10), - connect: make(chan peer.ID, 10), - disconnect: make(chan peer.ID, 10), - peerReqs: make(chan chan []peer.ID), - peers: make(map[peer.ID]*msgQueue), - wl: wantlist.NewThreadSafe(), - network: network, - ctx: ctx, - cancel: cancel, - metricWantlist: wantlistGauge, + incoming: make(chan []*bsmsg.Entry, 10), + connect: make(chan peer.ID, 10), + disconnect: make(chan peer.ID, 10), + peerReqs: make(chan chan []peer.ID), + peers: make(map[peer.ID]*msgQueue), + wl: wantlist.NewThreadSafe(), + network: network, + ctx: ctx, + cancel: cancel, + wantlistGauge: wantlistGauge, + sentHistogram: sentHistogram, } } @@ -116,6 +120,8 @@ func (pm *WantManager) SendBlock(ctx context.Context, env *engine.Envelope) { // throughout the network stack defer env.Sent() + pm.sentHistogram.Observe(float64(len(env.Block.RawData()))) + msg := bsmsg.New(false) msg.AddBlock(env.Block) log.Infof("Sending block %s to %s", env.Block, env.Peer) @@ -289,12 +295,12 @@ func (pm *WantManager) Run() { for _, e := range entries { if e.Cancel { if pm.wl.Remove(e.Cid) { - pm.metricWantlist.Dec() + pm.wantlistGauge.Dec() filtered = append(filtered, e) } } else { if pm.wl.AddEntry(e.Entry) { - pm.metricWantlist.Inc() + pm.wantlistGauge.Inc() filtered = append(filtered, e) } }