Commit 405d49a9 authored by Jeromy Johnson's avatar Jeromy Johnson Committed by GitHub
Browse files

Merge pull request #151 from libp2p/feat/optional-metrics

make bandwidth metrics optional
parents 647d20ae 077aae47
...@@ -58,7 +58,6 @@ func New(net inet.Network, opts ...interface{}) *BasicHost { ...@@ -58,7 +58,6 @@ func New(net inet.Network, opts ...interface{}) *BasicHost {
h := &BasicHost{ h := &BasicHost{
network: net, network: net,
mux: msmux.NewMultistreamMuxer(), mux: msmux.NewMultistreamMuxer(),
bwc: metrics.NewBandwidthCounter(),
} }
h.proc = goprocess.WithTeardown(func() error { h.proc = goprocess.WithTeardown(func() error {
...@@ -90,6 +89,8 @@ func New(net inet.Network, opts ...interface{}) *BasicHost { ...@@ -90,6 +89,8 @@ func New(net inet.Network, opts ...interface{}) *BasicHost {
} }
} }
h.ids.Reporter = h.bwc
net.SetConnHandler(h.newConnHandler) net.SetConnHandler(h.newConnHandler)
net.SetStreamHandler(h.newStreamHandler) net.SetStreamHandler(h.newStreamHandler)
...@@ -217,7 +218,11 @@ func (h *BasicHost) NewStream(ctx context.Context, p peer.ID, pids ...protocol.I ...@@ -217,7 +218,11 @@ func (h *BasicHost) NewStream(ctx context.Context, p peer.ID, pids ...protocol.I
s.SetProtocol(selpid) s.SetProtocol(selpid)
h.Peerstore().AddProtocols(p, selected) h.Peerstore().AddProtocols(p, selected)
return mstream.WrapStream(s, h.bwc), nil if h.bwc != nil {
s = mstream.WrapStream(s, h.bwc)
}
return s, nil
} }
func pidsToStrings(pids []protocol.ID) []string { func pidsToStrings(pids []protocol.ID) []string {
...@@ -250,11 +255,13 @@ func (h *BasicHost) newStream(ctx context.Context, p peer.ID, pid protocol.ID) ( ...@@ -250,11 +255,13 @@ func (h *BasicHost) newStream(ctx context.Context, p peer.ID, pid protocol.ID) (
s.SetProtocol(pid) s.SetProtocol(pid)
logStream := mstream.WrapStream(s, h.bwc) if h.bwc != nil {
s = mstream.WrapStream(s, h.bwc)
}
lzcon := msmux.NewMSSelect(logStream, string(pid)) lzcon := msmux.NewMSSelect(s, string(pid))
return &streamWrapper{ return &streamWrapper{
Stream: logStream, Stream: s,
rw: lzcon, rw: lzcon,
}, nil }, nil
} }
......
...@@ -9,7 +9,6 @@ import ( ...@@ -9,7 +9,6 @@ import (
logging "github.com/ipfs/go-log" logging "github.com/ipfs/go-log"
lgbl "github.com/libp2p/go-libp2p-loggables" lgbl "github.com/libp2p/go-libp2p-loggables"
metrics "github.com/libp2p/go-libp2p-metrics"
inet "github.com/libp2p/go-libp2p-net" inet "github.com/libp2p/go-libp2p-net"
peer "github.com/libp2p/go-libp2p-peer" peer "github.com/libp2p/go-libp2p-peer"
pstore "github.com/libp2p/go-libp2p-peerstore" pstore "github.com/libp2p/go-libp2p-peerstore"
...@@ -18,7 +17,7 @@ import ( ...@@ -18,7 +17,7 @@ import (
msmux "github.com/whyrusleeping/go-multistream" msmux "github.com/whyrusleeping/go-multistream"
) )
var log = logging.Logger("github.com/libp2p/go-libp2p/p2p/host/routed") var log = logging.Logger("routedhost")
// AddressTTL is the expiry time for our addresses. // AddressTTL is the expiry time for our addresses.
// We expire them quickly. // We expire them quickly.
...@@ -126,8 +125,4 @@ func (rh *RoutedHost) Close() error { ...@@ -126,8 +125,4 @@ func (rh *RoutedHost) Close() error {
return rh.host.Close() return rh.host.Close()
} }
func (rh *RoutedHost) GetBandwidthReporter() metrics.Reporter {
return rh.host.GetBandwidthReporter()
}
var _ (host.Host) = (*RoutedHost)(nil) var _ (host.Host) = (*RoutedHost)(nil)
...@@ -13,6 +13,7 @@ import ( ...@@ -13,6 +13,7 @@ import (
ic "github.com/libp2p/go-libp2p-crypto" ic "github.com/libp2p/go-libp2p-crypto"
host "github.com/libp2p/go-libp2p-host" host "github.com/libp2p/go-libp2p-host"
lgbl "github.com/libp2p/go-libp2p-loggables" lgbl "github.com/libp2p/go-libp2p-loggables"
metrics "github.com/libp2p/go-libp2p-metrics"
mstream "github.com/libp2p/go-libp2p-metrics/stream" mstream "github.com/libp2p/go-libp2p-metrics/stream"
inet "github.com/libp2p/go-libp2p-net" inet "github.com/libp2p/go-libp2p-net"
peer "github.com/libp2p/go-libp2p-peer" peer "github.com/libp2p/go-libp2p-peer"
...@@ -42,6 +43,7 @@ const ClientVersion = "go-libp2p/3.3.4" ...@@ -42,6 +43,7 @@ const ClientVersion = "go-libp2p/3.3.4"
type IDService struct { type IDService struct {
Host host.Host Host host.Host
Reporter metrics.Reporter
// connections undergoing identification // connections undergoing identification
// for wait purposes // for wait purposes
currid map[inet.Conn]chan struct{} currid map[inet.Conn]chan struct{}
...@@ -91,8 +93,9 @@ func (ids *IDService) IdentifyConn(c inet.Conn) { ...@@ -91,8 +93,9 @@ func (ids *IDService) IdentifyConn(c inet.Conn) {
s.SetProtocol(ID) s.SetProtocol(ID)
bwc := ids.Host.GetBandwidthReporter() if ids.Reporter != nil {
s = mstream.WrapStream(s, bwc) s = mstream.WrapStream(s, ids.Reporter)
}
// ok give the response to our handler. // ok give the response to our handler.
if err := msmux.SelectProtoOrFail(ID, s); err != nil { if err := msmux.SelectProtoOrFail(ID, s); err != nil {
...@@ -118,8 +121,9 @@ func (ids *IDService) RequestHandler(s inet.Stream) { ...@@ -118,8 +121,9 @@ func (ids *IDService) RequestHandler(s inet.Stream) {
defer s.Close() defer s.Close()
c := s.Conn() c := s.Conn()
bwc := ids.Host.GetBandwidthReporter() if ids.Reporter != nil {
s = mstream.WrapStream(s, bwc) s = mstream.WrapStream(s, ids.Reporter)
}
w := ggio.NewDelimitedWriter(s) w := ggio.NewDelimitedWriter(s)
mes := pb.Identify{} mes := pb.Identify{}
......
...@@ -211,9 +211,9 @@ ...@@ -211,9 +211,9 @@
}, },
{ {
"author": "whyrusleeping", "author": "whyrusleeping",
"hash": "QmU5qKZsCG1Wg38jwg8XezBdc3fBGMMZjM7YFMAhunC1Yh", "hash": "Qmb6UFbVu1grhv5o5KnouvtZ6cqdrjXj6zLejAHWunxgCt",
"name": "go-libp2p-host", "name": "go-libp2p-host",
"version": "1.2.0" "version": "1.3.0"
}, },
{ {
"author": "whyrusleeping", "author": "whyrusleeping",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment