diff --git a/go/trace/opentracing.go b/go/trace/opentracing.go index 6e6c6c5bc4e..a49a341ff55 100644 --- a/go/trace/opentracing.go +++ b/go/trace/opentracing.go @@ -87,10 +87,7 @@ func (jf openTracingService) New(parent Span, label string) Span { func extractMapFromString(in string) (opentracing.TextMapCarrier, error) { m := make(opentracing.TextMapCarrier) - items := strings.Split(in, ":") - if len(items) < 2 { - return nil, vterrors.Errorf(vtrpc.Code_INVALID_ARGUMENT, "expected transmitted context to contain at least span id and trace id") - } + items := strings.Split(in, ",") for _, v := range items { idx := strings.Index(v, "=") if idx < 1 { diff --git a/go/trace/opentracing_test.go b/go/trace/opentracing_test.go index 19bdbce9019..ef2e675536f 100644 --- a/go/trace/opentracing_test.go +++ b/go/trace/opentracing_test.go @@ -27,7 +27,8 @@ func TestExtractMapFromString(t *testing.T) { expected := make(opentracing.TextMapCarrier) expected["apa"] = "12" expected["banan"] = "x-tracing-backend-12" - result, err := extractMapFromString("apa=12:banan=x-tracing-backend-12") + expected["uber-trace-id"] = "123:456:789:1" + result, err := extractMapFromString("apa=12,banan=x-tracing-backend-12,uber-trace-id=123:456:789:1") assert.NoError(t, err) assert.Equal(t, expected, result) } @@ -36,6 +37,6 @@ func TestErrorConditions(t *testing.T) { _, err := extractMapFromString("") assert.Error(t, err) - _, err = extractMapFromString("key=value:keywithnovalue") + _, err = extractMapFromString("key=value,keywithnovalue") assert.Error(t, err) }