Skip to content

Commit 1c46b52

Browse files
authored
remove warning on fail (#4)
1 parent 5dfa8b4 commit 1c46b52

File tree

2 files changed

+34
-18
lines changed

2 files changed

+34
-18
lines changed

ctxtrace.go

+8-12
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,17 @@ func ExtractHTTPToContext(ctx context.Context, r *http.Request) context.Context
9292
return context.WithValue(ctx, traceCtxMarker{}, data)
9393
}
9494

95-
func addOtelSpanContextToContext(ctx context.Context, traceData TraceData) (context.Context, error) {
95+
func addOtelSpanContextToContext(ctx context.Context, traceData TraceData) context.Context {
9696
traceIDString := traceData.TraceSpan.TraceID.String()
9797
traceID, err := trace.IDFromHex(traceIDString)
98-
9998
if err != nil {
100-
return ctx, err
99+
return ctx
101100
}
102101

103102
spanIDString := traceData.TraceSpan.ID.String()
104103
spanID, err := trace.SpanIDFromHex(spanIDString)
105-
106104
if err != nil {
107-
return ctx, err
105+
return ctx
108106
}
109107

110108
traceFlags := trace.FlagsUnused
@@ -113,9 +111,11 @@ func addOtelSpanContextToContext(ctx context.Context, traceData TraceData) (cont
113111
}
114112

115113
spanContext := trace.SpanContext{TraceID: traceID, SpanID: spanID, TraceFlags: traceFlags}
116-
ctx = trace.ContextWithRemoteSpanContext(ctx, spanContext)
114+
if !spanContext.IsValid() {
115+
return ctx
116+
}
117117

118-
return ctx, nil
118+
return trace.ContextWithRemoteSpanContext(ctx, spanContext)
119119
}
120120

121121
// finds caller information in the gRPC metadata and adds it to the context
@@ -130,11 +130,7 @@ func extractMetadataToContext(ctx context.Context) context.Context {
130130
zap.L().Warn("b3 extract failed", zap.Error(err))
131131
} else {
132132
data.TraceSpan = span
133-
134-
ctx, err = addOtelSpanContextToContext(ctx, data)
135-
if err != nil {
136-
zap.L().Warn("opentelemetry context failed", zap.Error(err))
137-
}
133+
ctx = addOtelSpanContextToContext(ctx, data)
138134
}
139135

140136
if mdValue, ok := md[headerRequestID]; ok && len(mdValue) != 0 {

ctxtrace_test.go

+26-6
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func TestPackMetadata(t *testing.T) {
3434
}
3535
}
3636

37-
func TestOpenTelemetryContextNotSmapled(t *testing.T) {
37+
func TestAddOtelSpanContextToContext_NotSmapled(t *testing.T) {
3838
r := httptest.NewRequest("GET", "/foo", nil)
3939
r.Header.Set(headerRequestID, dummyRequestID)
4040
r.Header.Set(b3.ParentSpanID, "0716f381a10c2a9b")
@@ -46,8 +46,7 @@ func TestOpenTelemetryContextNotSmapled(t *testing.T) {
4646
data, err := ExtractHTTP(r)
4747
assert.Nil(t, err)
4848

49-
ctx, err = addOtelSpanContextToContext(ctx, data)
50-
assert.Nil(t, err)
49+
ctx = addOtelSpanContextToContext(ctx, data)
5150

5251
spanContext := trace.RemoteSpanContextFromContext(ctx)
5352

@@ -57,7 +56,7 @@ func TestOpenTelemetryContextNotSmapled(t *testing.T) {
5756
assert.Equal(t, spanContext.TraceID.String(), data.TraceSpan.TraceID.String())
5857
}
5958

60-
func TestOpenTelemetryContextSmapled(t *testing.T) {
59+
func TestAddOtelSpanContextToContext_Smapled(t *testing.T) {
6160
r := httptest.NewRequest("GET", "/foo", nil)
6261
r.Header.Set(headerRequestID, dummyRequestID)
6362
r.Header.Set(b3.ParentSpanID, "0716f381a10c2a9b")
@@ -69,8 +68,7 @@ func TestOpenTelemetryContextSmapled(t *testing.T) {
6968
data, err := ExtractHTTP(r)
7069
assert.Nil(t, err)
7170

72-
ctx, err = addOtelSpanContextToContext(ctx, data)
73-
assert.Nil(t, err)
71+
ctx = addOtelSpanContextToContext(ctx, data)
7472

7573
spanContext := trace.RemoteSpanContextFromContext(ctx)
7674

@@ -80,6 +78,28 @@ func TestOpenTelemetryContextSmapled(t *testing.T) {
8078
assert.Equal(t, spanContext.TraceID.String(), data.TraceSpan.TraceID.String())
8179
}
8280

81+
func TestAddOtelSpanContextToContext_InvalidParent(t *testing.T) {
82+
r := httptest.NewRequest("GET", "/foo", nil)
83+
r.Header.Set(headerRequestID, dummyRequestID)
84+
r.Header.Set(b3.ParentSpanID, "")
85+
r.Header.Set(b3.Sampled, "1")
86+
r.Header.Set(b3.SpanID, "")
87+
r.Header.Set(b3.TraceID, "")
88+
89+
ctx := context.Background()
90+
data, err := ExtractHTTP(r)
91+
assert.Nil(t, err)
92+
93+
ctx = addOtelSpanContextToContext(ctx, data)
94+
95+
// If there's no spanContext in the ctx, default EmptySpanContext is returned
96+
spanContext := trace.RemoteSpanContextFromContext(ctx)
97+
98+
assert.NotNil(t, spanContext)
99+
assert.False(t, spanContext.IsValid())
100+
assert.Equal(t, spanContext, trace.EmptySpanContext())
101+
}
102+
83103
func TestExtractHTTP(t *testing.T) {
84104
r := httptest.NewRequest("GET", "/foo", nil)
85105
r.Header.Set(headerRequestID, dummyRequestID)

0 commit comments

Comments
 (0)