From 7289b87f6b3018bb17590c0cdf3fd36f5b0366f3 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 8 Mar 2023 11:53:20 +0000 Subject: [PATCH 1/4] fix: provisionerd: add more context to logs emitted, fix log level --- provisionerd/runner/runner.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index a656ffed7cf4c..330b9c2d92916 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -880,7 +880,7 @@ func (r *Runner) buildWorkspace(ctx context.Context, stage string, req *sdkproto } switch msgType := msg.Type.(type) { case *sdkproto.Provision_Response_Log: - r.logger.Info(context.Background(), "workspace provision job logged", + r.logProvisionerJobLog(context.Background(), msgType.Log.Level, "workspace provisioner job logged", slog.F("level", msgType.Log.Level), slog.F("output", msgType.Log.Output), slog.F("workspace_build_id", r.job.GetWorkspaceBuild().WorkspaceBuildId), @@ -895,8 +895,9 @@ func (r *Runner) buildWorkspace(ctx context.Context, stage string, req *sdkproto }) case *sdkproto.Provision_Response_Complete: if msgType.Complete.Error != "" { - r.logger.Info(context.Background(), "provision failed; updating state", + r.logger.Warn(context.Background(), "provision failed; updating state", slog.F("state_length", len(msgType.Complete.State)), + slog.F("error", msgType.Complete.Error), ) return nil, &proto.FailedJob{ @@ -1120,3 +1121,15 @@ func redactVariableValues(variableValues []*sdkproto.VariableValue) []*sdkproto. } return redacted } + +// logProvisionerJobLog logs a message from the provisioner daemon at the appropriate level. +func (r *Runner) logProvisionerJobLog(ctx context.Context, logLevel sdkproto.LogLevel, msg string, fields ...slog.Field) { + switch logLevel { + case sdkproto.LogLevel_DEBUG: + r.logger.Debug(ctx, msg, fields...) + case sdkproto.LogLevel_ERROR: + r.logger.Error(ctx, msg, fields...) + default: + r.logger.Info(ctx, msg, fields...) + } +} From d010b472f624a241c63f2becd6f10129e600afd1 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 8 Mar 2023 13:31:36 +0000 Subject: [PATCH 2/4] log provision fail at level ERROR --- provisionerd/runner/runner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index 330b9c2d92916..aa6e43679c2e3 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -895,7 +895,7 @@ func (r *Runner) buildWorkspace(ctx context.Context, stage string, req *sdkproto }) case *sdkproto.Provision_Response_Complete: if msgType.Complete.Error != "" { - r.logger.Warn(context.Background(), "provision failed; updating state", + r.logger.Error(context.Background(), "provision failed; updating state", slog.F("state_length", len(msgType.Complete.State)), slog.F("error", msgType.Complete.Error), ) From ca2794d766af09202bef4dacc3e208544c5b1ced Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 8 Mar 2023 13:39:18 +0000 Subject: [PATCH 3/4] Revert "log provision fail at level ERROR" This reverts commit d010b472f624a241c63f2becd6f10129e600afd1. --- provisionerd/runner/runner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index aa6e43679c2e3..330b9c2d92916 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -895,7 +895,7 @@ func (r *Runner) buildWorkspace(ctx context.Context, stage string, req *sdkproto }) case *sdkproto.Provision_Response_Complete: if msgType.Complete.Error != "" { - r.logger.Error(context.Background(), "provision failed; updating state", + r.logger.Warn(context.Background(), "provision failed; updating state", slog.F("state_length", len(msgType.Complete.State)), slog.F("error", msgType.Complete.Error), ) From eba54ad1453144c0040dab11559debd44e630b5b Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 8 Mar 2023 14:37:46 +0000 Subject: [PATCH 4/4] handle all sdkproto.LogLevel enums --- provisionerd/runner/runner.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index 330b9c2d92916..ee6ea68193233 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -1125,11 +1125,17 @@ func redactVariableValues(variableValues []*sdkproto.VariableValue) []*sdkproto. // logProvisionerJobLog logs a message from the provisioner daemon at the appropriate level. func (r *Runner) logProvisionerJobLog(ctx context.Context, logLevel sdkproto.LogLevel, msg string, fields ...slog.Field) { switch logLevel { + case sdkproto.LogLevel_TRACE: + r.logger.Debug(ctx, msg, fields...) // There's no trace, so we'll just use debug. case sdkproto.LogLevel_DEBUG: r.logger.Debug(ctx, msg, fields...) + case sdkproto.LogLevel_INFO: + r.logger.Info(ctx, msg, fields...) + case sdkproto.LogLevel_WARN: + r.logger.Warn(ctx, msg, fields...) case sdkproto.LogLevel_ERROR: r.logger.Error(ctx, msg, fields...) - default: + default: // should never happen, but we should not explode either. r.logger.Info(ctx, msg, fields...) } }