File tree 3 files changed +32
-0
lines changed
contrib/internal/httptrace
3 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -360,6 +360,8 @@ func BenchmarkStartRequestSpan(b *testing.B) {
360
360
b .Errorf ("Failed to create request: %v" , err )
361
361
return
362
362
}
363
+ // Avoid (NoopTracer) StartSpan warning log
364
+ log .UseLogger (log.DiscardLogger {})
363
365
opts := []ddtrace.StartSpanOption {
364
366
tracer .ServiceName ("SomeService" ),
365
367
tracer .ResourceName ("SomeResource" ),
Original file line number Diff line number Diff line change 9
9
"sync/atomic"
10
10
11
11
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
12
+ "gopkg.in/DataDog/dd-trace-go.v1/internal/log"
12
13
)
13
14
14
15
var (
@@ -46,6 +47,7 @@ type NoopTracer struct{}
46
47
47
48
// StartSpan implements ddtrace.Tracer.
48
49
func (NoopTracer ) StartSpan (_ string , _ ... ddtrace.StartSpanOption ) ddtrace.Span {
50
+ log .Warn ("Tracer must be started before starting a span; Review the docs for more information: https://docs.datadoghq.com/tracing/trace_collection/library_config/go/" )
49
51
return NoopSpan {}
50
52
}
51
53
Original file line number Diff line number Diff line change 6
6
package tracer
7
7
8
8
import (
9
+ "bytes"
9
10
"context"
10
11
"encoding/base64"
11
12
"encoding/binary"
12
13
"encoding/hex"
13
14
"errors"
14
15
"fmt"
15
16
"io"
17
+ llog "log"
16
18
"net/http"
17
19
"net/http/httptest"
18
20
"os"
@@ -2696,3 +2698,29 @@ func TestExecutionTraceSpanTagged(t *testing.T) {
2696
2698
assert .Equal (t , partialSpan .Meta ["go_execution_traced" ], "partial" )
2697
2699
assert .NotContains (t , untracedSpan .Meta , "go_execution_traced" )
2698
2700
}
2701
+
2702
+ func TestNoopTracerStartSpan (t * testing.T ) {
2703
+ r , w , err := os .Pipe ()
2704
+ if err != nil {
2705
+ t .Fatalf ("Failed to create pipe: %v" , err )
2706
+ }
2707
+
2708
+ undo := log .UseLogger (customLogger {l : llog .New (w , "" , llog .LstdFlags )})
2709
+ defer undo ()
2710
+
2711
+ StartSpan ("abcd" )
2712
+
2713
+ w .Close ()
2714
+ var buf bytes.Buffer
2715
+ buf .ReadFrom (r )
2716
+
2717
+ log := buf .String ()
2718
+ expected := "Tracer must be started before starting a span"
2719
+ assert .Contains (t , log , expected )
2720
+ }
2721
+
2722
+ type customLogger struct { l * llog.Logger }
2723
+
2724
+ func (c customLogger ) Log (msg string ) {
2725
+ c .l .Print (msg )
2726
+ }
You can’t perform that action at this time.
0 commit comments