Modify EventOnProxyStats to include summary data

This commit is contained in:
Cecylia Bocovich 2023-10-30 12:37:56 -04:00
parent 018bbd6d65
commit 5c5eb2c339
No known key found for this signature in database
GPG key ID: 009DE379FD9B7B90
2 changed files with 15 additions and 8 deletions

View file

@ -2,6 +2,7 @@ package event
import (
"fmt"
"time"
"github.com/pion/webrtc/v3"
"gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/safelog"
@ -78,11 +79,16 @@ func (e EventOnProxyConnectionOver) String() string {
type EventOnProxyStats struct {
SnowflakeEvent
StatString string
ConnectionCount int
InboundBytes, OutboundBytes int64
InboundUnit, OutboundUnit string
SummaryInterval time.Duration
}
func (e EventOnProxyStats) String() string {
return e.StatString
statString := fmt.Sprintf("In the last %v, there were %v completed connections. Traffic Relayed ↓ %v %v, ↑ %v %v.",
e.SummaryInterval.String(), e.ConnectionCount, e.InboundBytes, e.InboundUnit, e.OutboundBytes, e.OutboundUnit)
return statString
}
type EventOnCurrentNATTypeDetermined struct {

View file

@ -1,7 +1,6 @@
package snowflake_proxy
import (
"fmt"
"io"
"log"
"time"
@ -47,11 +46,13 @@ func (p *periodicProxyStats) OnNewSnowflakeEvent(e event.SnowflakeEvent) {
func (p *periodicProxyStats) logTick() error {
inboundSum, outboundSum := p.bytesLogger.GetStat()
inbound, inboundUnit := formatTraffic(inboundSum)
outbound, outboundUnit := formatTraffic(outboundSum)
statString := fmt.Sprintf("In the last %v, there were %v completed connections. Traffic Relayed ↓ %v %v, ↑ %v %v.",
p.logPeriod.String(), p.connectionCount, inbound, inboundUnit, outbound, outboundUnit)
p.dispatcher.OnNewSnowflakeEvent(&event.EventOnProxyStats{StatString: statString})
e := &event.EventOnProxyStats{
SummaryInterval: p.logPeriod,
ConnectionCount: p.connectionCount,
}
e.InboundBytes, e.InboundUnit = formatTraffic(inboundSum)
e.OutboundBytes, e.OutboundUnit = formatTraffic(outboundSum)
p.dispatcher.OnNewSnowflakeEvent(e)
p.connectionCount = 0
return nil
}