Track buffered but not posted messages, and unify the expvar names for those counters

This commit is contained in:
Matt Joiner 2017-09-01 10:53:59 +10:00
parent e3479b0bb3
commit 361cdc0e08
2 changed files with 8 additions and 4 deletions

View 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

View File

@ -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")