Skip to content

Commit c9cbc63

Browse files
authored
feat: Fine-tune logs presentation (#6771)
* Process debug mode logs * Debug logs are grey * Fix
1 parent c7fb5f9 commit c9cbc63

File tree

4 files changed

+29
-3
lines changed

4 files changed

+29
-3
lines changed

coderd/provisionerjobs.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,8 @@ func (api *API) followProvisionerJobLogs(actor rbac.Subject, jobID uuid.UUID) (<
347347
logger := api.Logger.With(slog.F("job_id", jobID))
348348

349349
var (
350-
bufferedLogs = make(chan *database.ProvisionerJobLog, 128)
350+
// With debug logging enabled length = 128 is insufficient
351+
bufferedLogs = make(chan *database.ProvisionerJobLog, 1024)
351352
endOfLogs atomic.Bool
352353
lastSentLogID atomic.Int64
353354
)

provisioner/terraform/executor.go

+21-1
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,27 @@ func readAndLog(sink logSink, r io.Reader, done chan<- any, level proto.LogLevel
460460
defer close(done)
461461
scanner := bufio.NewScanner(r)
462462
for scanner.Scan() {
463-
sink.Log(&proto.Log{Level: level, Output: scanner.Text()})
463+
var log terraformProvisionLog
464+
err := json.Unmarshal(scanner.Bytes(), &log)
465+
if err != nil {
466+
if strings.TrimSpace(scanner.Text()) == "" {
467+
continue
468+
}
469+
470+
sink.Log(&proto.Log{Level: level, Output: scanner.Text()})
471+
continue
472+
}
473+
474+
logLevel := convertTerraformLogLevel(log.Level, sink)
475+
if logLevel == proto.LogLevel_TRACE {
476+
continue // skip TRACE log entries as they produce a lot of noise
477+
}
478+
479+
// Degrade JSON log entries marked as INFO as these are logs produced in debug mode.
480+
if logLevel == proto.LogLevel_INFO {
481+
logLevel = proto.LogLevel_DEBUG
482+
}
483+
sink.Log(&proto.Log{Level: logLevel, Output: log.Message})
464484
}
465485
}
466486

provisioner/terraform/provision.go

+1
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ func provisionEnv(config *proto.Provision_Config, params []*proto.ParameterValue
236236
for _, gitAuth := range gitAuth {
237237
env = append(env, provider.GitAuthAccessTokenEnvironmentVariable(gitAuth.Id)+"="+gitAuth.AccessToken)
238238
}
239+
// FIXME env = append(env, "TF_LOG=JSON")
239240
return env, nil
240241
}
241242

site/src/components/Logs/Logs.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,11 @@ const useStyles = makeStyles<
108108
backgroundColor: theme.palette.error.dark,
109109
},
110110

111-
"&.warning": {
111+
"&.debug": {
112+
backgroundColor: theme.palette.grey[900],
113+
},
114+
115+
"&.warn": {
112116
backgroundColor: theme.palette.warning.dark,
113117
},
114118
},

0 commit comments

Comments
 (0)