diff --git a/cmd/cloudflared/cliutil/logger.go b/cmd/cloudflared/cliutil/logger.go index 58f530fe..f734ba20 100644 --- a/cmd/cloudflared/cliutil/logger.go +++ b/cmd/cloudflared/cliutil/logger.go @@ -31,14 +31,6 @@ func ConfigureLoggingFlags(shouldHide bool) []cli.Flag { EnvVars: []string{"TUNNEL_LOGLEVEL"}, Hidden: shouldHide, }), - altsrc.NewStringFlag(&cli.StringFlag{ - Name: flags.TransportLogLevel, - Aliases: []string{"proto-loglevel"}, // This flag used to be called proto-loglevel - Value: "info", - Usage: "Transport logging level(previously called protocol logging level) {debug, info, warn, error, fatal}", - EnvVars: []string{"TUNNEL_PROTO_LOGLEVEL", "TUNNEL_TRANSPORT_LOGLEVEL"}, - Hidden: shouldHide, - }), altsrc.NewStringFlag(&cli.StringFlag{ Name: flags.LogFile, Usage: "Save application log to this file for reporting issues.", diff --git a/cmd/cloudflared/flags/flags.go b/cmd/cloudflared/flags/flags.go index 63f6434a..fd34d3f0 100644 --- a/cmd/cloudflared/flags/flags.go +++ b/cmd/cloudflared/flags/flags.go @@ -135,9 +135,6 @@ const ( // LogLevelSSH is the command line flag for the cloudflared ssh logging level LogLevelSSH = "log-level" - // TransportLogLevel is the command line flag for the transport logging level - TransportLogLevel = "transport-loglevel" - // LogFile is the command line flag to define the file where application logs will be stored LogFile = "logfile" diff --git a/cmd/cloudflared/tunnel/cmd.go b/cmd/cloudflared/tunnel/cmd.go index 4abd9bcc..2f15e13e 100644 --- a/cmd/cloudflared/tunnel/cmd.go +++ b/cmd/cloudflared/tunnel/cmd.go @@ -113,7 +113,6 @@ var ( "proxy-address", "proxy-port", cfdflags.LogLevel, - cfdflags.TransportLogLevel, cfdflags.LogFile, cfdflags.LogDirectory, cfdflags.TraceOutput, @@ -397,9 +396,7 @@ func StartServer( return fmt.Errorf("namedTunnel is nil") } - logTransport := logger.CreateTransportLoggerFromContext(c, logger.EnableTerminalLog) - - observer := connection.NewObserver(log, logTransport) + observer := connection.NewObserver(log) // Send Quick Tunnel URL to UI if applicable quickTunnelURL := namedTunnel.QuickTunnelUrl @@ -407,7 +404,7 @@ func StartServer( observer.SendURL(quickTunnelURL) } - tunnelConfig, orchestratorConfig, err := prepareTunnelConfig(ctx, c, info, log, logTransport, observer, namedTunnel) + tunnelConfig, orchestratorConfig, err := prepareTunnelConfig(ctx, c, info, log, observer, namedTunnel) if err != nil { log.Err(err).Msg("Couldn't start tunnel") return err diff --git a/cmd/cloudflared/tunnel/configuration.go b/cmd/cloudflared/tunnel/configuration.go index cdae8339..a28b7558 100644 --- a/cmd/cloudflared/tunnel/configuration.go +++ b/cmd/cloudflared/tunnel/configuration.go @@ -46,7 +46,6 @@ var ( flags.Retries, flags.Protocol, flags.LogLevel, - flags.TransportLogLevel, flags.OriginCert, flags.Metrics, flags.MetricsUpdateFreq, @@ -114,7 +113,7 @@ func prepareTunnelConfig( ctx context.Context, c *cli.Context, info *cliutil.BuildInfo, - log, logTransport *zerolog.Logger, + log *zerolog.Logger, observer *connection.Observer, namedTunnel *connection.TunnelProperties, ) (*supervisor.TunnelConfig, *orchestration.Config, error) { @@ -235,7 +234,6 @@ func prepareTunnelConfig( LBPool: c.String(flags.LBPool), Tags: tags, Log: log, - LogTransport: logTransport, Observer: observer, ReportedVersion: info.Version(), // Note TUN-3758 , we use Int because UInt is not supported with altsrc diff --git a/connection/http2_test.go b/connection/http2_test.go index 324577ff..644938b6 100644 --- a/connection/http2_test.go +++ b/connection/http2_test.go @@ -33,7 +33,7 @@ func newTestHTTP2Connection() (*HTTP2Connection, net.Conn) { edgeConn, cfdConn := net.Pipe() connIndex := uint8(0) log := zerolog.Nop() - obs := NewObserver(&log, &log) + obs := NewObserver(&log) controlStream := NewControlStream( obs, mockConnectedFuse{}, @@ -363,7 +363,7 @@ func TestServeControlStream(t *testing.T) { unregistered: make(chan struct{}), } - obs := NewObserver(&log, &log) + obs := NewObserver(&log) controlStream := NewControlStream( obs, mockConnectedFuse{}, @@ -417,7 +417,7 @@ func TestFailRegistration(t *testing.T) { unregistered: make(chan struct{}), } - obs := NewObserver(&log, &log) + obs := NewObserver(&log) controlStream := NewControlStream( obs, mockConnectedFuse{}, @@ -466,7 +466,7 @@ func TestGracefulShutdownHTTP2(t *testing.T) { events := &eventCollectorSink{} shutdownC := make(chan struct{}) - obs := NewObserver(&log, &log) + obs := NewObserver(&log) obs.RegisterSink(events) controlStream := NewControlStream( obs, diff --git a/connection/observer.go b/connection/observer.go index 7e63cb3d..eab712e3 100644 --- a/connection/observer.go +++ b/connection/observer.go @@ -20,7 +20,6 @@ const ( type Observer struct { log *zerolog.Logger - logTransport *zerolog.Logger metrics *tunnelMetrics tunnelEventChan chan Event addSinkChan chan EventSink @@ -30,10 +29,9 @@ type EventSink interface { OnTunnelEvent(event Event) } -func NewObserver(log, logTransport *zerolog.Logger) *Observer { +func NewObserver(log *zerolog.Logger) *Observer { o := &Observer{ log: log, - logTransport: logTransport, metrics: newTunnelMetrics(), tunnelEventChan: make(chan Event, observerChannelBufferSize), addSinkChan: make(chan EventSink, observerChannelBufferSize), diff --git a/connection/observer_test.go b/connection/observer_test.go index b5ea41b0..c06491bf 100644 --- a/connection/observer_test.go +++ b/connection/observer_test.go @@ -1,6 +1,7 @@ package connection import ( + "runtime" "strconv" "sync" "testing" @@ -9,22 +10,23 @@ import ( "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestSendUrl(t *testing.T) { - observer := NewObserver(&log, &log) + observer := NewObserver(&log) observer.SendURL("my-url.com") - assert.Equal(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://my-url.com")) + assert.InEpsilon(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://my-url.com"), 0.001) observer.SendURL("https://another-long-one.com") - assert.Equal(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://another-long-one.com")) + assert.InEpsilon(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://another-long-one.com"), 0.001) } func getCounterValue(t *testing.T, metric *prometheus.CounterVec, val string) float64 { var m = &dto.Metric{} err := metric.WithLabelValues(val).Write(m) - assert.NoError(t, err) + require.NoError(t, err) return m.Counter.GetValue() } @@ -59,16 +61,16 @@ func TestRegisterServerLocation(t *testing.T) { id := strconv.Itoa(i) assert.Equal(t, "AUS", m.oldServerLocations[id]) } - } func TestObserverEventsDontBlock(t *testing.T) { - observer := NewObserver(&log, &log) + observer := NewObserver(&log) var mu sync.Mutex observer.RegisterSink(EventSinkFunc(func(_ Event) { // callback will block if lock is already held mu.Lock() - mu.Unlock() + defer mu.Unlock() + runtime.Gosched() })) timeout := time.AfterFunc(5*time.Second, func() { diff --git a/connection/quic_connection_test.go b/connection/quic_connection_test.go index 1542b707..8e6e57c1 100644 --- a/connection/quic_connection_test.go +++ b/connection/quic_connection_test.go @@ -225,7 +225,7 @@ func TestControlStreamClassifiesDuplicateRegistration(t *testing.T) { shouldFail: errors.New(DuplicateConnectionError), } controlStream := NewControlStream( - NewObserver(&log, &log), + NewObserver(&log), mockConnectedFuse{}, &TunnelProperties{}, 0, diff --git a/logger/create.go b/logger/create.go index 2ae67ab9..bd4356d9 100644 --- a/logger/create.go +++ b/logger/create.go @@ -128,10 +128,6 @@ func newZerolog(loggerConfig *Config) *zerolog.Logger { return &log } -func CreateTransportLoggerFromContext(c *cli.Context, disableTerminal bool) *zerolog.Logger { - return createFromContext(c, cfdflags.TransportLogLevel, cfdflags.LogDirectory, disableTerminal) -} - func CreateLoggerFromContext(c *cli.Context, disableTerminal bool) *zerolog.Logger { return createFromContext(c, cfdflags.LogLevel, cfdflags.LogDirectory, disableTerminal) } @@ -216,7 +212,7 @@ func createFileWriter(config FileConfig) (io.Writer, error) { fullpath := config.Fullpath() // Try to open the existing file - logFile, err := os.OpenFile(fullpath, os.O_APPEND|os.O_WRONLY, filePermMode) + logFile, err := os.OpenFile(fullpath, os.O_APPEND|os.O_WRONLY, filePermMode) //nolint:gosec // Log file path is provided by the configured FileConfig. if err != nil { // If the existing file wasn't found, or couldn't be opened, just ignore // it and recreate a new one. @@ -246,7 +242,7 @@ func createDirFile(config FileConfig) (io.Writer, error) { mode := os.FileMode(filePermMode) fullPath := filepath.Join(config.Dirname, config.Filename) - logFile, err := os.OpenFile(fullPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, mode) + logFile, err := os.OpenFile(fullPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, mode) //nolint:gosec // Log file path is constructed from the configured FileConfig. if err != nil { return nil, fmt.Errorf("unable to create a new logfile: %s", err) } diff --git a/supervisor/supervisor.go b/supervisor/supervisor.go index 3923fefd..b2c19e79 100644 --- a/supervisor/supervisor.go +++ b/supervisor/supervisor.go @@ -8,7 +8,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/quic-go/quic-go" - "github.com/rs/zerolog" "github.com/cloudflare/cloudflared/connection" "github.com/cloudflare/cloudflared/edgediscovery" @@ -41,8 +40,7 @@ type Supervisor struct { nextConnectedIndex int nextConnectedSignal chan struct{} - log *ConnAwareLogger - logTransport *zerolog.Logger + log *ConnAwareLogger gracefulShutdownC <-chan struct{} } @@ -100,7 +98,6 @@ func NewSupervisor(config *TunnelConfig, orchestrator *orchestration.Orchestrato tunnelsConnecting: map[int]chan struct{}{}, tunnelsProtocolFallback: map[int]*protocolFallback{}, log: log, - logTransport: config.LogTransport, gracefulShutdownC: gracefulShutdownC, }, nil } diff --git a/supervisor/tunnel.go b/supervisor/tunnel.go index a7c5e7ec..01cca579 100644 --- a/supervisor/tunnel.go +++ b/supervisor/tunnel.go @@ -53,7 +53,6 @@ type TunnelConfig struct { LBPool string Tags []pogs.Tag Log *zerolog.Logger - LogTransport *zerolog.Logger Observer *connection.Observer ReportedVersion string Retries uint diff --git a/supervisor/tunnel_test.go b/supervisor/tunnel_test.go index 015822ca..66229c54 100644 --- a/supervisor/tunnel_test.go +++ b/supervisor/tunnel_test.go @@ -280,7 +280,7 @@ func (s *scriptedTunnelServer) Serve(_ context.Context, _ uint8, _ *protocolFall func newTestSupervisor(t *testing.T, server TunnelServer) *Supervisor { t.Helper() log := zerolog.Nop() - observer := connection.NewObserver(&log, &log) + observer := connection.NewObserver(&log) tracker := tunnelstate.NewConnTracker(&log) connAwareLogger := NewConnAwareLogger(&log, tracker, observer)