From d8f7ad643c2f52b6f7beda6bcd714acfa013dcca Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Fri, 16 Aug 2024 11:11:27 +0100 Subject: [PATCH] fix(provisionerd/runner): do not log entire resources fix(coderd/workspaceagentsrpc): do not log entire agent --- coderd/workspaceagentsrpc.go | 14 +++++++++++++- provisionerd/runner/runner.go | 21 +++++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/coderd/workspaceagentsrpc.go b/coderd/workspaceagentsrpc.go index 1d5a80729680f..a47fa0c12ed1a 100644 --- a/coderd/workspaceagentsrpc.go +++ b/coderd/workspaceagentsrpc.go @@ -116,7 +116,19 @@ func (api *API) workspaceAgentRPC(rw http.ResponseWriter, r *http.Request) { } defer mux.Close() - logger.Debug(ctx, "accepting agent RPC connection", slog.F("agent", workspaceAgent)) + logger.Debug(ctx, "accepting agent RPC connection", + slog.F("agent_id", workspaceAgent.ID), + slog.F("agent_created_at", workspaceAgent.CreatedAt), + slog.F("agent_updated_at", workspaceAgent.UpdatedAt), + slog.F("agent_name", workspaceAgent.Name), + slog.F("agent_first_connected_at", workspaceAgent.FirstConnectedAt.Time), + slog.F("agent_last_connected_at", workspaceAgent.LastConnectedAt.Time), + slog.F("agent_disconnected_at", workspaceAgent.DisconnectedAt.Time), + slog.F("agent_version", workspaceAgent.Version), + slog.F("agent_last_connected_replica_id", workspaceAgent.LastConnectedReplicaID), + slog.F("agent_connection_timeout_seconds", workspaceAgent.ConnectionTimeoutSeconds), + slog.F("agent_api_version", workspaceAgent.APIVersion), + slog.F("agent_resource_id", workspaceAgent.ResourceID)) closeCtx, closeCtxCancel := context.WithCancel(ctx) defer closeCtxCancel() diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index edeb5d80f3194..af8add30ef3d8 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -724,7 +724,7 @@ func (r *Runner) runTemplateImportProvisionWithRichParameters( r.logger.Info(context.Background(), "parse dry-run provision successful", slog.F("resource_count", len(c.Resources)), - slog.F("resources", c.Resources), + slog.F("resources", resourceNames(c.Resources)), ) return &templateImportProvision{ @@ -854,7 +854,7 @@ func (r *Runner) buildWorkspace(ctx context.Context, stage string, req *sdkproto func (r *Runner) commitQuota(ctx context.Context, resources []*sdkproto.Resource) *proto.FailedJob { cost := sumDailyCost(resources) r.logger.Debug(ctx, "committing quota", - slog.F("resources", resources), + slog.F("resources", resourceNames(resources)), slog.F("cost", cost), ) if cost == 0 { @@ -965,7 +965,7 @@ func (r *Runner) runWorkspaceBuild(ctx context.Context) (*proto.CompletedJob, *p r.logger.Info(context.Background(), "plan request successful", slog.F("resource_count", len(planComplete.Resources)), - slog.F("resources", planComplete.Resources), + slog.F("resources", resourceNames(planComplete.Resources)), ) r.flushQueuedLogs(ctx) if commitQuota { @@ -1021,7 +1021,7 @@ func (r *Runner) runWorkspaceBuild(ctx context.Context) (*proto.CompletedJob, *p r.logger.Info(context.Background(), "apply successful", slog.F("resource_count", len(applyComplete.Resources)), - slog.F("resources", applyComplete.Resources), + slog.F("resources", resourceNames(applyComplete.Resources)), slog.F("state_len", len(applyComplete.State)), ) r.flushQueuedLogs(ctx) @@ -1038,6 +1038,19 @@ func (r *Runner) runWorkspaceBuild(ctx context.Context) (*proto.CompletedJob, *p }, nil } +func resourceNames(rs []*sdkproto.Resource) []string { + var sb strings.Builder + names := make([]string, 0, len(rs)) + for _, r := range rs { + _, _ = sb.WriteString(r.Type) + _, _ = sb.WriteString(".") + _, _ = sb.WriteString(r.Name) + names = append(names, sb.String()) + sb.Reset() + } + return names +} + func (r *Runner) failedWorkspaceBuildf(format string, args ...interface{}) *proto.FailedJob { failedJob := r.failedJobf(format, args...) failedJob.Type = &proto.FailedJob_WorkspaceBuild_{}