Skip to content
This repository was archived by the owner on Nov 7, 2022. It is now read-only.

Commit 935fc7c

Browse files
author
Paulo Janotti
authored
Jaeger requires non-nil Process (#334)
Enforcing that conversion from OC proto to Jaeger always ends with a non-nil Process.
1 parent 55f0a76 commit 935fc7c

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

translator/trace/protospan_to_jaegerthrift.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ var (
3737
errWrongLenID = errors.New("ID does not have 8 bytes")
3838
)
3939

40+
var (
41+
unknownProcess = &jaeger.Process{ServiceName: "unknown-service-name"}
42+
)
43+
4044
// OCProtoToJaegerThrift translates OpenCensus trace data into the Jaeger Thrift format.
4145
func OCProtoToJaegerThrift(ocBatch *agenttracepb.ExportTraceServiceRequest) (*jaeger.Batch, error) {
4246
if ocBatch == nil {
@@ -58,7 +62,8 @@ func OCProtoToJaegerThrift(ocBatch *agenttracepb.ExportTraceServiceRequest) (*ja
5862

5963
func ocNodeToJaegerProcess(node *commonpb.Node) *jaeger.Process {
6064
if node == nil {
61-
return nil
65+
// Jaeger requires a non-nil Process
66+
return unknownProcess
6267
}
6368

6469
var jTags []*jaeger.Tag

translator/trace/protospan_to_jaegerthrift_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,27 @@ func TestInvalidOCProtoIDs(t *testing.T) {
112112
}
113113
}
114114

115+
func TestNilOCProtoNode(t *testing.T) {
116+
nilNodeBatch := &agenttracepb.ExportTraceServiceRequest{
117+
Spans: []*tracepb.Span{
118+
{
119+
TraceId: []byte("0123456789abcdef"),
120+
SpanId: []byte("01234567"),
121+
},
122+
},
123+
}
124+
got, err := OCProtoToJaegerThrift(nilNodeBatch)
125+
if err != nil {
126+
t.Fatalf("Failed to translate OC batch to Jaeger Thrift: %v", err)
127+
}
128+
if got.Process == nil {
129+
t.Fatalf("Jaeger requires a non-nil Process field")
130+
}
131+
if got.Process != unknownProcess {
132+
t.Fatalf("got unexpected Jaeger Process field")
133+
}
134+
}
135+
115136
func TestOCProtoToJaegerThrift(t *testing.T) {
116137
const numOfFiles = 2
117138
for i := 0; i < numOfFiles; i++ {

0 commit comments

Comments
 (0)