Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-bitswap
Commits
d183ae75
Commit
d183ae75
authored
Jan 26, 2017
by
Jeromy
Committed by
Jakub Sztandera
Mar 06, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add more info to bitswap stat
License: MIT Signed-off-by:
Jeromy
<
jeromyj@gmail.com
>
parent
2712d298
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
0 deletions
+52
-0
bitswap.go
bitswap.go
+4
-0
bitswap_test.go
bitswap_test.go
+38
-0
stat.go
stat.go
+6
-0
workers.go
workers.go
+4
-0
No files found.
bitswap.go
View file @
d183ae75
...
@@ -157,6 +157,9 @@ type Bitswap struct {
...
@@ -157,6 +157,9 @@ type Bitswap struct {
blocksRecvd
int
blocksRecvd
int
dupBlocksRecvd
int
dupBlocksRecvd
int
dupDataRecvd
uint64
dupDataRecvd
uint64
blocksSent
int
dataSent
uint64
dataRecvd
uint64
// Metrics interface metrics
// Metrics interface metrics
dupMetric
metrics
.
Histogram
dupMetric
metrics
.
Histogram
...
@@ -401,6 +404,7 @@ func (bs *Bitswap) updateReceiveCounters(b blocks.Block) {
...
@@ -401,6 +404,7 @@ func (bs *Bitswap) updateReceiveCounters(b blocks.Block) {
defer
bs
.
counterLk
.
Unlock
()
defer
bs
.
counterLk
.
Unlock
()
bs
.
blocksRecvd
++
bs
.
blocksRecvd
++
bs
.
dataRecvd
+=
uint64
(
len
(
b
.
RawData
()))
if
has
{
if
has
{
bs
.
dupBlocksRecvd
++
bs
.
dupBlocksRecvd
++
bs
.
dupDataRecvd
+=
uint64
(
blkLen
)
bs
.
dupDataRecvd
+=
uint64
(
blkLen
)
...
...
bitswap_test.go
View file @
d183ae75
...
@@ -3,6 +3,7 @@ package bitswap
...
@@ -3,6 +3,7 @@ package bitswap
import
(
import
(
"bytes"
"bytes"
"context"
"context"
"fmt"
"sync"
"sync"
"testing"
"testing"
"time"
"time"
...
@@ -299,6 +300,25 @@ func TestEmptyKey(t *testing.T) {
...
@@ -299,6 +300,25 @@ func TestEmptyKey(t *testing.T) {
}
}
}
}
func
assertStat
(
st
*
Stat
,
sblks
,
rblks
int
,
sdata
,
rdata
uint64
)
error
{
if
sblks
!=
st
.
BlocksSent
{
return
fmt
.
Errorf
(
"mismatch in blocks sent: %d vs %d"
,
sblks
,
st
.
BlocksSent
)
}
if
rblks
!=
st
.
BlocksReceived
{
return
fmt
.
Errorf
(
"mismatch in blocks recvd: %d vs %d"
,
rblks
,
st
.
BlocksReceived
)
}
if
sdata
!=
st
.
DataSent
{
return
fmt
.
Errorf
(
"mismatch in data sent: %d vs %d"
,
sdata
,
st
.
DataSent
)
}
if
rdata
!=
st
.
DataReceived
{
return
fmt
.
Errorf
(
"mismatch in data recvd: %d vs %d"
,
rdata
,
st
.
DataReceived
)
}
return
nil
}
func
TestBasicBitswap
(
t
*
testing
.
T
)
{
func
TestBasicBitswap
(
t
*
testing
.
T
)
{
net
:=
tn
.
VirtualNetwork
(
mockrouting
.
NewServer
(),
delay
.
Fixed
(
kNetworkDelay
))
net
:=
tn
.
VirtualNetwork
(
mockrouting
.
NewServer
(),
delay
.
Fixed
(
kNetworkDelay
))
sg
:=
NewTestSessionGenerator
(
net
)
sg
:=
NewTestSessionGenerator
(
net
)
...
@@ -321,6 +341,24 @@ func TestBasicBitswap(t *testing.T) {
...
@@ -321,6 +341,24 @@ func TestBasicBitswap(t *testing.T) {
t
.
Fatal
(
err
)
t
.
Fatal
(
err
)
}
}
st0
,
err
:=
instances
[
0
]
.
Exchange
.
Stat
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
st1
,
err
:=
instances
[
1
]
.
Exchange
.
Stat
()
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
if
err
:=
assertStat
(
st0
,
1
,
0
,
1
,
0
);
err
!=
nil
{
t
.
Fatal
(
err
)
}
if
err
:=
assertStat
(
st1
,
0
,
1
,
0
,
1
);
err
!=
nil
{
t
.
Fatal
(
err
)
}
t
.
Log
(
blk
)
t
.
Log
(
blk
)
for
_
,
inst
:=
range
instances
{
for
_
,
inst
:=
range
instances
{
err
:=
inst
.
Exchange
.
Close
()
err
:=
inst
.
Exchange
.
Close
()
...
...
stat.go
View file @
d183ae75
...
@@ -11,6 +11,9 @@ type Stat struct {
...
@@ -11,6 +11,9 @@ type Stat struct {
Wantlist
[]
*
cid
.
Cid
Wantlist
[]
*
cid
.
Cid
Peers
[]
string
Peers
[]
string
BlocksReceived
int
BlocksReceived
int
DataReceived
uint64
BlocksSent
int
DataSent
uint64
DupBlksReceived
int
DupBlksReceived
int
DupDataReceived
uint64
DupDataReceived
uint64
}
}
...
@@ -23,6 +26,9 @@ func (bs *Bitswap) Stat() (*Stat, error) {
...
@@ -23,6 +26,9 @@ func (bs *Bitswap) Stat() (*Stat, error) {
st
.
BlocksReceived
=
bs
.
blocksRecvd
st
.
BlocksReceived
=
bs
.
blocksRecvd
st
.
DupBlksReceived
=
bs
.
dupBlocksRecvd
st
.
DupBlksReceived
=
bs
.
dupBlocksRecvd
st
.
DupDataReceived
=
bs
.
dupDataRecvd
st
.
DupDataReceived
=
bs
.
dupDataRecvd
st
.
BlocksSent
=
bs
.
blocksSent
st
.
DataSent
=
bs
.
dataSent
st
.
DataReceived
=
bs
.
dataRecvd
bs
.
counterLk
.
Unlock
()
bs
.
counterLk
.
Unlock
()
for
_
,
p
:=
range
bs
.
engine
.
Peers
()
{
for
_
,
p
:=
range
bs
.
engine
.
Peers
()
{
...
...
workers.go
View file @
d183ae75
...
@@ -64,6 +64,10 @@ func (bs *Bitswap) taskWorker(ctx context.Context, id int) {
...
@@ -64,6 +64,10 @@ func (bs *Bitswap) taskWorker(ctx context.Context, id int) {
})
})
bs
.
wm
.
SendBlock
(
ctx
,
envelope
)
bs
.
wm
.
SendBlock
(
ctx
,
envelope
)
bs
.
counterLk
.
Lock
()
bs
.
blocksSent
++
bs
.
dataSent
+=
uint64
(
len
(
envelope
.
Block
.
RawData
()))
bs
.
counterLk
.
Unlock
()
case
<-
ctx
.
Done
()
:
case
<-
ctx
.
Done
()
:
return
return
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment