The Recorder.Info and Recorder.Error methods in telemetry/log.go call r.log(ctx, log.SeverityInfo, ...) and r.log(ctx, log.SeverityError, ...), which sets SeverityNumber on the record but leaves SeverityText empty.
The OTel log data model has both fields for a reason — SeverityNumber is the normalized enum used for querying and filtering, while SeverityText is the human-readable label displayed by backends. Display tooling (e.g. BetterStack) renders the text field as the level badge and ignores the number for display purposes.
Since we choose the severity directly, both fields should always be set together:
rec.SetSeverity(severity)
rec.SetSeverityText(severity.String())
The fix belongs in the r.log helper in telemetry/log.go.
The
Recorder.InfoandRecorder.Errormethods intelemetry/log.gocallr.log(ctx, log.SeverityInfo, ...)andr.log(ctx, log.SeverityError, ...), which setsSeverityNumberon the record but leavesSeverityTextempty.The OTel log data model has both fields for a reason —
SeverityNumberis the normalized enum used for querying and filtering, whileSeverityTextis the human-readable label displayed by backends. Display tooling (e.g. BetterStack) renders the text field as the level badge and ignores the number for display purposes.Since we choose the severity directly, both fields should always be set together:
The fix belongs in the
r.loghelper intelemetry/log.go.