htlcswitch: fix periodic calculation of satoshis sent/received

In this commit, we fix an issue where users would be displayed negative
amounts of satoshis either as sent or received. This can happen if the
total amount of channel updates decreases due to channels being closed.

To fix this, we properly handle a negative difference of channel
updates by updating the stats logged to only include active
channels/links to the switch.
This commit is contained in:
Wilmer Paulino 2018-04-02 21:23:55 -04:00
parent 47a1d3f9e5
commit fca0df28e9
No known key found for this signature in database
GPG Key ID: 6DF57B9F9514972F

@ -1402,11 +1402,22 @@ func (s *Switch) htlcForwarder() {
continue
}
// If the diff of num updates is negative, then some
// links may have been unregistered from the switch, so
// we'll update our stats to only include our registered
// links.
if int64(diffNumUpdates) < 0 {
totalNumUpdates = newNumUpdates
totalSatSent = newSatSent
totalSatRecv = newSatRecv
continue
}
// Otherwise, we'll log this diff, then accumulate the
// new stats into the running total.
log.Infof("Sent %v satoshis received %v satoshis "+
"in the last 10 seconds (%v tx/sec)",
int64(diffSatSent), int64(diffSatRecv),
log.Infof("Sent %d satoshis and received %d satoshis "+
"in the last 10 seconds (%f tx/sec)",
diffSatSent, diffSatRecv,
float64(diffNumUpdates)/10)
totalNumUpdates += diffNumUpdates