From 3b2aa5880ab7e85587134ac011f02034e1441523 Mon Sep 17 00:00:00 2001 From: Lars Gierth Date: Tue, 23 Jun 2015 02:11:04 +0200 Subject: [PATCH] swarm: export ipfs_p2p_peers_total metric --- p2p/net/swarm/swarm.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/p2p/net/swarm/swarm.go b/p2p/net/swarm/swarm.go index 4fe45df8549f..a451b9b3f642 100644 --- a/p2p/net/swarm/swarm.go +++ b/p2p/net/swarm/swarm.go @@ -20,12 +20,20 @@ import ( pst "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-peerstream/transport" psy "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-peerstream/transport/yamux" context "github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context" + prom "github.com/prometheus/client_golang/prometheus" ) var log = eventlog.Logger("swarm2") var PSTransport pst.Transport +var peersTotal = prom.NewGauge(prom.GaugeOpts{ + Namespace: "ipfs", + Subsystem: "p2p", + Name: "peers_total", + Help: "Number of connected peers", +}) + func init() { tpt := *psy.DefaultTransport tpt.MaxStreamWindowSize = 512 * 1024 @@ -82,6 +90,8 @@ func NewSwarm(ctx context.Context, listenAddrs []ma.Multiaddr, s.cg.SetTeardown(s.teardown) s.SetConnHandler(nil) // make sure to setup our own conn handler. + prom.MustRegister(peersTotal) + return s, s.listen(listenAddrs) } @@ -260,10 +270,12 @@ type ps2netNotifee struct { func (n *ps2netNotifee) Connected(c *ps.Conn) { n.not.Connected(n.net, inet.Conn((*Conn)(c))) + peersTotal.Inc() } func (n *ps2netNotifee) Disconnected(c *ps.Conn) { n.not.Disconnected(n.net, inet.Conn((*Conn)(c))) + peersTotal.Dec() } func (n *ps2netNotifee) OpenedStream(s *ps.Stream) {