diff --git a/agent/go.mod b/agent/go.mod index 15884fac8..9595ba64d 100644 --- a/agent/go.mod +++ b/agent/go.mod @@ -12,6 +12,7 @@ require ( github.com/go-playground/validator/v10 v10.5.0 github.com/google/martian v2.1.0+incompatible github.com/gorilla/websocket v1.4.2 + github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 // indirect github.com/orcaman/concurrent-map v0.0.0-20210106121528-16402b402231 github.com/patrickmn/go-cache v2.1.0+incompatible github.com/romana/rlog v0.0.0-20171115192701-f018bc92e7d7 diff --git a/agent/main.go b/agent/main.go index acb29507a..0bfe370a7 100644 --- a/agent/main.go +++ b/agent/main.go @@ -22,6 +22,7 @@ import ( "github.com/gin-contrib/static" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" + "github.com/op/go-logging" "github.com/up9inc/mizu/shared" "github.com/up9inc/mizu/shared/logger" "github.com/up9inc/mizu/tap" @@ -40,7 +41,12 @@ var extensions []*tapApi.Extension // global var extensionsMap map[string]*tapApi.Extension // global func main() { - logger.InitLoggerStderrOnly() + logLevel := logging.INFO + debugMode := os.Getenv(shared.DebugModeEnvVar) == "1" + if debugMode { + logLevel = logging.DEBUG + } + logger.InitLoggerStderrOnly(logLevel) flag.Parse() loadExtensions() diff --git a/cli/kubernetes/provider.go b/cli/kubernetes/provider.go index 40882b54e..3cae70685 100644 --- a/cli/kubernetes/provider.go +++ b/cli/kubernetes/provider.go @@ -16,6 +16,7 @@ import ( "io" + "github.com/up9inc/mizu/cli/config" "github.com/up9inc/mizu/cli/mizu" "github.com/up9inc/mizu/shared" "github.com/up9inc/mizu/tap/api" @@ -195,6 +196,11 @@ func (provider *Provider) CreateMizuApiServerPod(ctx context.Context, opts *ApiS port := intstr.FromInt(shared.DefaultApiServerPort) + debugMode := "" + if config.Config.DumpLogs { + debugMode = "1" + } + pod := &core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: opts.PodName, @@ -223,6 +229,10 @@ func (provider *Provider) CreateMizuApiServerPod(ctx context.Context, opts *ApiS Name: shared.MaxEntriesDBSizeBytesEnvVar, Value: strconv.FormatInt(opts.MaxEntriesDBSizeBytes, 10), }, + { + Name: shared.DebugModeEnvVar, + Value: debugMode, + }, }, Resources: core.ResourceRequirements{ Limits: core.ResourceList{ @@ -524,6 +534,11 @@ func (provider *Provider) ApplyMizuTapperDaemonSet(ctx context.Context, namespac "--nodefrag", } + debugMode := "" + if config.Config.DumpLogs { + debugMode = "1" + } + agentContainer := applyconfcore.Container() agentContainer.WithName(tapperPodName) agentContainer.WithImage(podImage) @@ -531,6 +546,7 @@ func (provider *Provider) ApplyMizuTapperDaemonSet(ctx context.Context, namespac agentContainer.WithSecurityContext(applyconfcore.SecurityContext().WithPrivileged(true)) agentContainer.WithCommand(mizuCmd...) agentContainer.WithEnv( + applyconfcore.EnvVar().WithName(shared.DebugModeEnvVar).WithValue(debugMode), applyconfcore.EnvVar().WithName(shared.HostModeEnvVar).WithValue("1"), applyconfcore.EnvVar().WithName(shared.TappedAddressesPerNodeDictEnvVar).WithValue(string(nodeToTappedPodIPMapJsonStr)), applyconfcore.EnvVar().WithName(shared.GoGCEnvVar).WithValue("12800"), diff --git a/shared/consts.go b/shared/consts.go index 6de052da1..cf4d6f208 100644 --- a/shared/consts.go +++ b/shared/consts.go @@ -11,4 +11,5 @@ const ( RulePolicyFileName = "enforce-policy.yaml" GoGCEnvVar = "GOGC" DefaultApiServerPort = 8899 + DebugModeEnvVar = "MIZU_DEBUG" ) diff --git a/shared/logger/logger.go b/shared/logger/logger.go index e8f82e91e..305246550 100644 --- a/shared/logger/logger.go +++ b/shared/logger/logger.go @@ -29,13 +29,10 @@ func InitLogger(logPath string) { logging.SetBackend(backend1Leveled, backend2Formatter) } -func InitLoggerStderrOnly() { - consoleLog := logging.NewLogBackend(os.Stderr, "", 0) +func InitLoggerStderrOnly(level logging.Level) { + backend := logging.NewLogBackend(os.Stderr, "", 0) + backendFormatter := logging.NewBackendFormatter(backend, format) - backend1Formatter := logging.NewBackendFormatter(consoleLog, format) - - backend1Leveled := logging.AddModuleLevel(consoleLog) - backend1Leveled.SetLevel(logging.DEBUG, "") - - logging.SetBackend(backend1Leveled, backend1Formatter) + logging.SetBackend(backendFormatter) + logging.SetLevel(level, "") }