Skip to content

Commit 12971d9

Browse files
committed
fix(ddtrace/tracer): avoid tests to fail with error "non-constant format string" from upcoming Go 1.24 release
1 parent d15e61a commit 12971d9

12 files changed

Lines changed: 68 additions & 36 deletions

File tree

‎ddtrace/opentelemetry/span.go‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"encoding/binary"
1010
"encoding/json"
1111
"errors"
12-
"fmt"
1312
"strconv"
1413
"strings"
1514
"sync"
@@ -85,7 +84,7 @@ func (s *span) End(options ...oteltrace.SpanEndOption) {
8584
if err == nil {
8685
s.DD.SetTag("events", string(b))
8786
} else {
88-
log.Debug(fmt.Sprintf("Issue marshaling span events; events dropped from span meta\n%v", err))
87+
log.Debug("Issue marshaling span events; events dropped from span meta\n%v", err)
8988
}
9089
}
9190
var finishCfg = oteltrace.NewSpanEndConfig(options...)

‎ddtrace/opentelemetry/span_test.go‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func TestSpanResourceNameDefault(t *testing.T) {
104104
tracer.Flush()
105105
traces, err := waitForPayload(payloads)
106106
if err != nil {
107-
t.Fatalf(err.Error())
107+
t.Fatal(err.Error())
108108
}
109109
p := traces[0]
110110
assert.Equal("internal", p[0]["name"])
@@ -127,7 +127,7 @@ func TestSpanSetName(t *testing.T) {
127127
tracer.Flush()
128128
traces, err := waitForPayload(payloads)
129129
if err != nil {
130-
t.Fatalf(err.Error())
130+
t.Fatal(err.Error())
131131
}
132132
p := traces[0]
133133
assert.Equal(strings.ToLower("NewName"), p[0]["name"])
@@ -165,7 +165,7 @@ func TestSpanLink(t *testing.T) {
165165
tracer.Flush()
166166
payload, err := waitForPayload(payloads)
167167
if err != nil {
168-
t.Fatalf(err.Error())
168+
t.Fatal(err.Error())
169169
}
170170
assert.NotNil(payload)
171171
assert.Len(payload, 1) // only one trace
@@ -222,7 +222,7 @@ func TestSpanEnd(t *testing.T) {
222222
tracer.Flush()
223223
traces, err := waitForPayload(payloads)
224224
if err != nil {
225-
t.Fatalf(err.Error())
225+
t.Fatal(err.Error())
226226
}
227227
p := traces[0]
228228

@@ -285,7 +285,7 @@ func TestSpanSetStatus(t *testing.T) {
285285
tracer.Flush()
286286
traces, err := waitForPayload(payloads)
287287
if err != nil {
288-
t.Fatalf(err.Error())
288+
t.Fatal(err.Error())
289289
}
290290
p := traces[0]
291291
// An error description is set IFF the span has an error
@@ -425,7 +425,7 @@ func TestSpanContextWithStartOptions(t *testing.T) {
425425
tracer.Flush()
426426
traces, err := waitForPayload(payloads)
427427
if err != nil {
428-
t.Fatalf(err.Error())
428+
t.Fatal(err.Error())
429429
}
430430
p := traces[0]
431431
t.Logf("%v", p[0])
@@ -463,7 +463,7 @@ func TestSpanContextWithStartOptionsPriorityOrder(t *testing.T) {
463463
tracer.Flush()
464464
traces, err := waitForPayload(payloads)
465465
if err != nil {
466-
t.Fatalf(err.Error())
466+
t.Fatal(err.Error())
467467
}
468468
p := traces[0]
469469
assert.Equal("persisted_srv", p[0]["service"])
@@ -502,7 +502,7 @@ func TestSpanEndOptionsPriorityOrder(t *testing.T) {
502502
tracer.Flush()
503503
traces, err := waitForPayload(payloads)
504504
if err != nil {
505-
t.Fatalf(err.Error())
505+
t.Fatal(err.Error())
506506
}
507507
p := traces[0]
508508
assert.Equal(float64(duration.Nanoseconds()), p[0]["duration"])
@@ -531,7 +531,7 @@ func TestSpanEndOptions(t *testing.T) {
531531
tracer.Flush()
532532
traces, err := waitForPayload(payloads)
533533
if err != nil {
534-
t.Fatalf(err.Error())
534+
t.Fatal(err.Error())
535535
}
536536
p := traces[0]
537537
assert.Equal("ctx_srv", p[0]["service"])
@@ -579,7 +579,7 @@ func TestSpanSetAttributes(t *testing.T) {
579579
tracer.Flush()
580580
traces, err := waitForPayload(payloads)
581581
if err != nil {
582-
t.Fatalf(err.Error())
582+
t.Fatal(err.Error())
583583
}
584584
p := traces[0]
585585
meta := fmt.Sprintf("%v", p[0]["meta"])
@@ -620,7 +620,7 @@ func TestSpanSetAttributesWithRemapping(t *testing.T) {
620620
tracer.Flush()
621621
traces, err := waitForPayload(payloads)
622622
if err != nil {
623-
t.Fatalf(err.Error())
623+
t.Fatal(err.Error())
624624
}
625625
p := traces[0]
626626
assert.Equal("graphql.server.request", p[0]["name"])
@@ -638,7 +638,7 @@ func TestTracerStartOptions(t *testing.T) {
638638
tracer.Flush()
639639
traces, err := waitForPayload(payloads)
640640
if err != nil {
641-
t.Fatalf(err.Error())
641+
t.Fatal(err.Error())
642642
}
643643
p := traces[0]
644644
assert.Equal("test_serv", p[0]["service"])
@@ -661,7 +661,7 @@ func TestOperationNameRemapping(t *testing.T) {
661661
tracer.Flush()
662662
traces, err := waitForPayload(payloads)
663663
if err != nil {
664-
t.Fatalf(err.Error())
664+
t.Fatal(err.Error())
665665
}
666666
p := traces[0]
667667
assert.Equal("graphql.server.request", p[0]["name"])
@@ -788,7 +788,7 @@ func TestRemapName(t *testing.T) {
788788
tracer.Flush()
789789
traces, err := waitForPayload(payloads)
790790
if err != nil {
791-
t.Fatalf(err.Error())
791+
t.Fatal(err.Error())
792792
}
793793
p := traces[0]
794794
assert.Equal(test.out, p[0]["name"])
@@ -818,7 +818,7 @@ func TestRemapWithMultipleSetAttributes(t *testing.T) {
818818
tracer.Flush()
819819
traces, err := waitForPayload(payloads)
820820
if err != nil {
821-
t.Fatalf(err.Error())
821+
t.Fatal(err.Error())
822822
}
823823
p := traces[0]
824824
assert.Equal("overriden.name", p[0]["name"])

‎ddtrace/tracer/abandonedspans.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ func (d *abandonedSpansDebugger) log(interval *time.Duration) {
273273
log.Warn("Too many abandoned spans. Truncating message.")
274274
sb.WriteString("...")
275275
}
276-
log.Warn(sb.String())
276+
log.Log(log.LevelWarn, sb.String())
277277
}
278278

279279
// formatAbandonedSpans takes a bucket and returns a human-readable string representing

‎ddtrace/tracer/option_test.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ func TestIntegrationEnabled(t *testing.T) {
338338
var out contribPkg
339339
err := stream.Decode(&out)
340340
if err != nil {
341-
t.Fatalf(err.Error())
341+
t.Fatal(err.Error())
342342
}
343343
packages = append(packages, out)
344344
}

‎ddtrace/tracer/otel_dd_mappings.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func getDDorOtelConfig(configName string) string {
9898
} else {
9999
v, err := config.remapper(otVal)
100100
if err != nil {
101-
log.Warn(err.Error())
101+
log.Warn("%v", err)
102102
telemetryTags := []string{ddPrefix + strings.ToLower(config.dd), otelPrefix + strings.ToLower(config.ot)}
103103
telemetry.GlobalClient.Count(telemetry.NamespaceTracers, "otel.env.invalid", 1.0, telemetryTags, true)
104104
}

‎ddtrace/tracer/slog.go‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,23 @@ func (h slogHandler) Enabled(ctx context.Context, lvl slog.Level) bool {
3030
}
3131

3232
func (h slogHandler) Handle(ctx context.Context, r slog.Record) error {
33-
parts := make([]string, 0, 1+len(h.attrs)+r.NumAttrs())
34-
parts = append(parts, r.Message)
33+
parts := make([]string, 0, len(h.attrs)+r.NumAttrs())
3534
parts = append(parts, h.attrs...)
3635
r.Attrs(func(a slog.Attr) bool {
3736
parts = append(parts, formatAttr(a, h.groups))
3837
return true
3938
})
4039

41-
msg := strings.Join(parts, " ")
40+
extra := strings.Join(parts, " ")
4241
switch r.Level {
4342
case slog.LevelDebug:
44-
log.Debug(msg)
43+
log.Debug("%s %s", r.Message, extra)
4544
case slog.LevelInfo:
46-
log.Info(msg)
45+
log.Info("%s %s", r.Message, extra)
4746
case slog.LevelWarn:
48-
log.Warn(msg)
47+
log.Warn("%s %s", r.Message, extra)
4948
case slog.LevelError:
50-
log.Error(msg)
49+
log.Error("%s %s", r.Message, extra)
5150
}
5251
return nil
5352
}

‎internal/appsec/appsec.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ func init() {
222222
Warn: log.Warn,
223223
Errorf: func(s string, a ...any) error {
224224
err := fmt.Errorf(s, a...)
225-
log.Error(err.Error())
225+
log.Error("%v", err)
226226
return err
227227
},
228228
})

‎internal/appsec/emitter/waf/run.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (op *ContextOperation) Run(eventReceiver dyngo.Operation, addrs waf.RunAddr
6161
func RunSimple(ctx context.Context, addrs waf.RunAddressData, errorLog string) error {
6262
parent, _ := dyngo.FromContext(ctx)
6363
if parent == nil {
64-
log.Error(errorLog)
64+
log.Error("%s", errorLog)
6565
return nil
6666
}
6767

‎internal/civisibility/integrations/civisibility_features.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ func uploadRepositoryChanges() (bytes int64, err error) {
224224
hasBeenUnshallowed, err := utils.UnshallowGitRepository()
225225
if err != nil || !hasBeenUnshallowed {
226226
if err != nil {
227-
log.Warn(err.Error())
227+
log.Warn("%v", err)
228228
}
229229
// if unshallowing the repository failed or if there's nothing to unshallow then we try to upload the packfiles from
230230
// the initial commit data

‎internal/log/log.go‎

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,16 @@ func GetLevel() Level {
125125
return level
126126
}
127127

128+
// Log writes the given message to the logger at the given level.
129+
func Log(lvl Level, msg string) {
130+
switch lvl {
131+
case LevelDebug:
132+
Debug("%s", msg)
133+
case LevelWarn:
134+
Warn("%s", msg)
135+
}
136+
}
137+
128138
// DebugEnabled returns true if debug log messages are enabled. This can be used in extremely
129139
// hot code paths to avoid allocating the ...interface{} argument.
130140
func DebugEnabled() bool {
@@ -239,15 +249,15 @@ func Flush() {
239249

240250
func flushLocked() {
241251
for _, report := range erragg {
242-
msg := fmt.Sprintf("%v", report.err)
252+
var extra string
243253
if report.count > defaultErrorLimit {
244-
msg += fmt.Sprintf(", %d+ additional messages skipped (first occurrence: %s)", defaultErrorLimit, report.first.Format(time.RFC822))
254+
extra = fmt.Sprintf(", %d+ additional messages skipped (first occurrence: %s)", defaultErrorLimit, report.first.Format(time.RFC822))
245255
} else if report.count > 1 {
246-
msg += fmt.Sprintf(", %d additional messages skipped (first occurrence: %s)", report.count-1, report.first.Format(time.RFC822))
256+
extra = fmt.Sprintf(", %d additional messages skipped (first occurrence: %s)", report.count-1, report.first.Format(time.RFC822))
247257
} else {
248-
msg += fmt.Sprintf(" (occurred: %s)", report.first.Format(time.RFC822))
258+
extra = fmt.Sprintf(" (occurred: %s)", report.first.Format(time.RFC822))
249259
}
250-
printMsg("ERROR", msg)
260+
printMsg("ERROR", "%v%s", report.err, extra)
251261
}
252262
for k := range erragg {
253263
// compiler-optimized map-clearing post go1.11 (golang/go#20138)

0 commit comments

Comments
 (0)