mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
Refactor disabling the stats logger
Have Snowflake proxy periodically collect throughput stats even if the stats logger is disabled so that it can be handled by the prometheus metrics.
This commit is contained in:
parent
22d9381d9d
commit
648609dbea
3 changed files with 17 additions and 14 deletions
|
@ -9,17 +9,25 @@ import (
|
|||
"gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/task"
|
||||
)
|
||||
|
||||
func NewProxyEventLogger(output io.Writer) event.SnowflakeEventReceiver {
|
||||
func NewProxyEventLogger(output io.Writer, disableStats bool) event.SnowflakeEventReceiver {
|
||||
logger := log.New(output, "", log.LstdFlags|log.LUTC)
|
||||
return &proxyEventLogger{logger: logger}
|
||||
return &proxyEventLogger{logger: logger, disableStats: disableStats}
|
||||
}
|
||||
|
||||
type proxyEventLogger struct {
|
||||
logger *log.Logger
|
||||
disableStats bool
|
||||
}
|
||||
|
||||
func (p *proxyEventLogger) OnNewSnowflakeEvent(e event.SnowflakeEvent) {
|
||||
switch e.(type) {
|
||||
case event.EventOnProxyStats:
|
||||
if !p.disableStats {
|
||||
p.logger.Println(e.String())
|
||||
}
|
||||
default:
|
||||
p.logger.Println(e.String())
|
||||
}
|
||||
}
|
||||
|
||||
type periodicProxyStats struct {
|
||||
|
|
|
@ -140,8 +140,6 @@ type SnowflakeProxy struct {
|
|||
EventDispatcher event.SnowflakeEventDispatcher
|
||||
shutdown chan struct{}
|
||||
|
||||
// DisableStatsLogger indicates whether proxy stats will be logged periodically
|
||||
DisableStatsLogger bool
|
||||
// SummaryInterval is the time interval at which proxy stats will be logged
|
||||
SummaryInterval time.Duration
|
||||
|
||||
|
@ -658,11 +656,9 @@ func (sf *SnowflakeProxy) Start() error {
|
|||
sf.EventDispatcher = event.NewSnowflakeEventDispatcher()
|
||||
}
|
||||
|
||||
if !sf.DisableStatsLogger {
|
||||
sf.bytesLogger = newBytesSyncLogger()
|
||||
sf.periodicProxyStats = newPeriodicProxyStats(sf.SummaryInterval, sf.EventDispatcher, sf.bytesLogger)
|
||||
sf.EventDispatcher.AddSnowflakeEventListener(sf.periodicProxyStats)
|
||||
}
|
||||
|
||||
broker, err = newSignalingServer(sf.BrokerURL, sf.KeepLocalAddresses)
|
||||
if err != nil {
|
||||
|
|
|
@ -97,7 +97,6 @@ func main() {
|
|||
RelayDomainNamePattern: *allowedRelayHostNamePattern,
|
||||
AllowNonTLSRelay: *allowNonTLSRelay,
|
||||
|
||||
DisableStatsLogger: *disableStatsLogger,
|
||||
SummaryInterval: *summaryInterval,
|
||||
}
|
||||
|
||||
|
@ -127,7 +126,7 @@ func main() {
|
|||
log.SetOutput(&safelog.LogScrubber{Output: logOutput})
|
||||
}
|
||||
|
||||
proxyEventLogger := sf.NewProxyEventLogger(eventlogOutput)
|
||||
proxyEventLogger := sf.NewProxyEventLogger(eventlogOutput, *disableStatsLogger)
|
||||
eventLogger.AddSnowflakeEventListener(proxyEventLogger)
|
||||
|
||||
if *enableMetrics {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue