]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Track buffered but not posted messages, and unify the expvar names for those counters
authorMatt Joiner <anacrolix@gmail.com>
Fri, 1 Sep 2017 00:53:59 +0000 (10:53 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 1 Sep 2017 00:53:59 +0000 (10:53 +1000)
connection.go
global.go

index 05c5f5ea44a0406e95d852b3d8a89e4289c669a9..da1d97b7aaebc2a9860ec8d0e50ae3a7f05f2bd7 100644 (file)
@@ -234,7 +234,7 @@ func (cn *connection) PeerHasPiece(piece int) bool {
 }
 
 func (cn *connection) Post(msg pp.Message) {
-       postedMessageTypes.Add(strconv.FormatInt(int64(msg.Type), 10), 1)
+       messageTypesPosted.Add(strconv.FormatInt(int64(msg.Type), 10), 1)
        cn.postedBuffer.Write(msg.MustMarshalBinary())
        cn.writerCond.Broadcast()
 }
@@ -408,6 +408,7 @@ func (cn *connection) writer(keepAliveTimeout time.Duration) {
                cn.postedBuffer.Reset()
                if buf.Len() == 0 {
                        cn.fillWriteBuffer(func(msg pp.Message) bool {
+                               cn.wroteMsg(&msg)
                                buf.Write(msg.MustMarshalBinary())
                                return buf.Len() < 1<<16
                        })
@@ -662,6 +663,7 @@ func (c *connection) requestPendingMetadata() {
 }
 
 func (cn *connection) wroteMsg(msg *pp.Message) {
+       messageTypesSent.Add(strconv.FormatInt(int64(msg.Type), 10), 1)
        cn.stats.wroteMsg(msg)
        cn.t.stats.wroteMsg(msg)
 }
@@ -742,7 +744,7 @@ func (c *connection) mainReadLoop() error {
                        receivedKeepalives.Add(1)
                        continue
                }
-               receivedMessageTypes.Add(strconv.FormatInt(int64(msg.Type), 10), 1)
+               messageTypesReceived.Add(strconv.FormatInt(int64(msg.Type), 10), 1)
                switch msg.Type {
                case pp.Choke:
                        c.PeerChoked = true
index 9e357c5678ab8e8fb52101880eb8c00af8d42946..fe1901cbbfa94b33e1de5f26359fef688d3fc626 100644 (file)
--- a/global.go
+++ b/global.go
@@ -80,14 +80,16 @@ var (
        connsToSelf = expvar.NewInt("connsToSelf")
        // Number of completed connections to a client we're already connected with.
        duplicateClientConns       = expvar.NewInt("duplicateClientConns")
-       receivedMessageTypes       = expvar.NewMap("receivedMessageTypes")
        receivedKeepalives         = expvar.NewInt("receivedKeepalives")
        supportedExtensionMessages = expvar.NewMap("supportedExtensionMessages")
-       postedMessageTypes         = expvar.NewMap("postedMessageTypes")
        postedKeepalives           = expvar.NewInt("postedKeepalives")
        // Requests received for pieces we don't have.
        requestsReceivedForMissingPieces = expvar.NewInt("requestsReceivedForMissingPieces")
 
+       messageTypesReceived = expvar.NewMap("messageTypesReceived")
+       messageTypesSent     = expvar.NewMap("messageTypesSent")
+       messageTypesPosted   = expvar.NewMap("messageTypesPosted")
+
        // Track the effectiveness of Torrent.connPieceInclinationPool.
        pieceInclinationsReused = expvar.NewInt("pieceInclinationsReused")
        pieceInclinationsNew    = expvar.NewInt("pieceInclinationsNew")