diff --git a/cmd/pdatagen/internal/base_fields.go b/cmd/pdatagen/internal/base_fields.go index 0610e49d394..335ae036291 100644 --- a/cmd/pdatagen/internal/base_fields.go +++ b/cmd/pdatagen/internal/base_fields.go @@ -68,9 +68,7 @@ func (ms ${structName}) ${fieldName}() ${returnType} { const accessorsMessageValueTestTemplate = `func Test${structName}_${fieldName}(t *testing.T) { ms := New${structName}() ms.InitEmpty() - assert.True(t, ms.${fieldName}().IsEmpty()) fillTest${returnType}(ms.${fieldName}()) - assert.False(t, ms.${fieldName}().IsEmpty()) assert.EqualValues(t, generateTest${returnType}(), ms.${fieldName}()) }` diff --git a/cmd/pdatagen/internal/base_structs.go b/cmd/pdatagen/internal/base_structs.go index c6fbba9ce61..c66e440f2a5 100644 --- a/cmd/pdatagen/internal/base_structs.go +++ b/cmd/pdatagen/internal/base_structs.go @@ -372,35 +372,21 @@ func (ms ${structName}) InitEmpty() { *ms.orig = ${originName}{} } -// Deprecated: Use IsEmpty instead +// Deprecated: This function will be removed soon. func (ms ${structName}) IsNil() bool { - return ms.IsEmpty() + return false }` -const messageValueIsEmptyHeaderTemplate = `// IsEmpty returns true if the underlying data are equivalent with an empty message. -func (ms ${structName}) IsEmpty() bool { - return ` - -const messageValueIsEmptyFooterTemplate = `}` - const messageValueCopyToHeaderTemplate = `// CopyTo copies all properties from the current struct to the dest. -func (ms ${structName}) CopyTo(dest ${structName}) { - if ms.IsEmpty() { - *dest.orig = emptyValue${structName} - return - }` +func (ms ${structName}) CopyTo(dest ${structName}) {` const messageValueCopyToFooterTemplate = `}` const messageValueTestTemplate = ` func Test${structName}_CopyTo(t *testing.T) { ms := New${structName}() - assert.True(t, ms.IsEmpty()) - New${structName}().CopyTo(ms) - assert.True(t, ms.IsEmpty()) generateTest${structName}().CopyTo(ms) assert.EqualValues(t, generateTest${structName}(), ms) - assert.False(t, ms.IsEmpty()) }` const messageValueGenerateTestTemplate = `func generateTest${structName}() ${structName} { @@ -607,26 +593,6 @@ func (ms *messageValueStruct) generateStruct(sb *strings.Builder) { f.generateAccessors(ms, sb) } sb.WriteString(newLine + newLine) - sb.WriteString(os.Expand(messageValueIsEmptyHeaderTemplate, func(name string) string { - switch name { - case "structName": - return ms.structName - default: - panic(name) - } - })) - // Write accessors IsEmpty for the struct - for i, f := range ms.fields { - f.generateIsEmpty(sb) - if i != len(ms.fields)-1 { - sb.WriteString(" ||") - } - } - sb.WriteString(newLine) - sb.WriteString(os.Expand(messageValueIsEmptyFooterTemplate, func(name string) string { - panic(name) - })) - sb.WriteString(newLine + newLine) sb.WriteString(os.Expand(messageValueCopyToHeaderTemplate, func(name string) string { switch name { case "structName": diff --git a/consumer/pdata/generated_log_test.go b/consumer/pdata/generated_log_test.go index c3edcddc63f..9f24ec56ac8 100644 --- a/consumer/pdata/generated_log_test.go +++ b/consumer/pdata/generated_log_test.go @@ -161,9 +161,7 @@ func TestResourceLogs_CopyTo(t *testing.T) { func TestResourceLogs_Resource(t *testing.T) { ms := NewResourceLogs() ms.InitEmpty() - assert.True(t, ms.Resource().IsEmpty()) fillTestResource(ms.Resource()) - assert.False(t, ms.Resource().IsEmpty()) assert.EqualValues(t, generateTestResource(), ms.Resource()) } diff --git a/consumer/pdata/generated_metrics_test.go b/consumer/pdata/generated_metrics_test.go index 4d0190bcb9a..6c01c2277e3 100644 --- a/consumer/pdata/generated_metrics_test.go +++ b/consumer/pdata/generated_metrics_test.go @@ -161,9 +161,7 @@ func TestResourceMetrics_CopyTo(t *testing.T) { func TestResourceMetrics_Resource(t *testing.T) { ms := NewResourceMetrics() ms.InitEmpty() - assert.True(t, ms.Resource().IsEmpty()) fillTestResource(ms.Resource()) - assert.False(t, ms.Resource().IsEmpty()) assert.EqualValues(t, generateTestResource(), ms.Resource()) } diff --git a/consumer/pdata/generated_resource.go b/consumer/pdata/generated_resource.go index a3f7a2920b5..5c05c72e1f1 100644 --- a/consumer/pdata/generated_resource.go +++ b/consumer/pdata/generated_resource.go @@ -51,9 +51,9 @@ func (ms Resource) InitEmpty() { *ms.orig = otlpresource.Resource{} } -// Deprecated: Use IsEmpty instead +// Deprecated: This function will be removed soon. func (ms Resource) IsNil() bool { - return ms.IsEmpty() + return false } // Attributes returns the Attributes associated with this Resource. @@ -63,16 +63,7 @@ func (ms Resource) Attributes() AttributeMap { return newAttributeMap(&(*ms.orig).Attributes) } -// IsEmpty returns true if the underlying data are equivalent with an empty message. -func (ms Resource) IsEmpty() bool { - return ms.Attributes().IsEmpty() -} - // CopyTo copies all properties from the current struct to the dest. func (ms Resource) CopyTo(dest Resource) { - if ms.IsEmpty() { - *dest.orig = emptyValueResource - return - } ms.Attributes().CopyTo(dest.Attributes()) } diff --git a/consumer/pdata/generated_resource_test.go b/consumer/pdata/generated_resource_test.go index 6edb3227e43..a74781ca262 100644 --- a/consumer/pdata/generated_resource_test.go +++ b/consumer/pdata/generated_resource_test.go @@ -25,12 +25,8 @@ import ( func TestResource_CopyTo(t *testing.T) { ms := NewResource() - assert.True(t, ms.IsEmpty()) - NewResource().CopyTo(ms) - assert.True(t, ms.IsEmpty()) generateTestResource().CopyTo(ms) assert.EqualValues(t, generateTestResource(), ms) - assert.False(t, ms.IsEmpty()) } func TestResource_Attributes(t *testing.T) { diff --git a/consumer/pdata/generated_trace_test.go b/consumer/pdata/generated_trace_test.go index 453712ec8df..12f21e88cfe 100644 --- a/consumer/pdata/generated_trace_test.go +++ b/consumer/pdata/generated_trace_test.go @@ -161,9 +161,7 @@ func TestResourceSpans_CopyTo(t *testing.T) { func TestResourceSpans_Resource(t *testing.T) { ms := NewResourceSpans() ms.InitEmpty() - assert.True(t, ms.Resource().IsEmpty()) fillTestResource(ms.Resource()) - assert.False(t, ms.Resource().IsEmpty()) assert.EqualValues(t, generateTestResource(), ms.Resource()) } diff --git a/consumer/simple/metrics.go b/consumer/simple/metrics.go index 7e15f1fe1db..1e195e0dfdd 100644 --- a/consumer/simple/metrics.go +++ b/consumer/simple/metrics.go @@ -179,7 +179,6 @@ func (mb *Metrics) getMetricsSlice() pdata.MetricSlice { rm.InitEmpty() res := rm.Resource() - res.InitEmpty() for k, v := range mb.ResourceAttributes { res.Attributes().Insert(k, pdata.NewAttributeValueString(v)) } diff --git a/consumer/simple/metrics_test.go b/consumer/simple/metrics_test.go index 110ff8836f5..fa7c496bfb7 100644 --- a/consumer/simple/metrics_test.go +++ b/consumer/simple/metrics_test.go @@ -476,7 +476,6 @@ func BenchmarkPdataMetrics(b *testing.B) { rm.InitEmpty() res := rm.Resource() - res.InitEmpty() resAttrs := res.Attributes() resAttrs.Insert("host", pdata.NewAttributeValueString("my-host")) resAttrs.Insert("serviceName", pdata.NewAttributeValueString("app")) diff --git a/exporter/loggingexporter/logging_exporter.go b/exporter/loggingexporter/logging_exporter.go index 29bf99f07a4..37d6035df79 100644 --- a/exporter/loggingexporter/logging_exporter.go +++ b/exporter/loggingexporter/logging_exporter.go @@ -325,9 +325,7 @@ func (s *loggingExporter) pushTraceData( buf.logEntry("* Nil ResourceSpans") continue } - if !rs.Resource().IsEmpty() { - buf.logAttributeMap("Resource labels", rs.Resource().Attributes()) - } + buf.logAttributeMap("Resource labels", rs.Resource().Attributes()) ilss := rs.InstrumentationLibrarySpans() for j := 0; j < ilss.Len(); j++ { buf.logEntry("InstrumentationLibrarySpans #%d", j) @@ -391,9 +389,7 @@ func (s *loggingExporter) pushMetricsData( buf.logEntry("* Nil ResourceMetrics") continue } - if !rm.Resource().IsEmpty() { - buf.logAttributeMap("Resource labels", rm.Resource().Attributes()) - } + buf.logAttributeMap("Resource labels", rm.Resource().Attributes()) ilms := rm.InstrumentationLibraryMetrics() for j := 0; j < ilms.Len(); j++ { buf.logEntry("InstrumentationLibraryMetrics #%d", j) @@ -504,10 +500,7 @@ func (s *loggingExporter) pushLogData( buf.logEntry("* Nil ResourceLog") continue } - if !rl.Resource().IsEmpty() { - buf.logAttributeMap("Resource labels", rl.Resource().Attributes()) - } - + buf.logAttributeMap("Resource labels", rl.Resource().Attributes()) ills := rl.InstrumentationLibraryLogs() for j := 0; j < ills.Len(); j++ { buf.logEntry("InstrumentationLibraryLogs #%d", j) diff --git a/internal/processor/filtermatcher/filtermatcher_test.go b/internal/processor/filtermatcher/filtermatcher_test.go index e52ea97f451..d538c86c898 100644 --- a/internal/processor/filtermatcher/filtermatcher_test.go +++ b/internal/processor/filtermatcher/filtermatcher_test.go @@ -368,7 +368,6 @@ func Test_Matching_True(t *testing.T) { }) resource := pdata.NewResource() - resource.InitEmpty() resource.Attributes().InitFromMap(map[string]pdata.AttributeValue{ conventions.AttributeServiceName: pdata.NewAttributeValueString("svcA"), "resString": pdata.NewAttributeValueString("arithmetic"), @@ -392,7 +391,6 @@ func Test_Matching_True(t *testing.T) { func resource(service string) pdata.Resource { r := pdata.NewResource() - r.InitEmpty() r.Attributes().InitFromMap(map[string]pdata.AttributeValue{conventions.AttributeServiceName: pdata.NewAttributeValueString(service)}) return r } diff --git a/internal/processor/filterspan/filterspan.go b/internal/processor/filterspan/filterspan.go index e6d8c272040..f4686c35fee 100644 --- a/internal/processor/filterspan/filterspan.go +++ b/internal/processor/filterspan/filterspan.go @@ -125,10 +125,6 @@ func (mp *propertiesMatcher) MatchSpan(span pdata.Span, resource pdata.Resource, // serviceNameForResource gets the service name for a specified Resource. func serviceNameForResource(resource pdata.Resource) string { - if resource.IsEmpty() { - return "" - } - service, found := resource.Attributes().Get(conventions.AttributeServiceName) if !found { return "" diff --git a/internal/processor/filterspan/filterspan_test.go b/internal/processor/filterspan/filterspan_test.go index 80bd780df11..61f100b3d3b 100644 --- a/internal/processor/filterspan/filterspan_test.go +++ b/internal/processor/filterspan/filterspan_test.go @@ -162,33 +162,6 @@ func TestSpan_Matching_False(t *testing.T) { } } -func resource(service string) pdata.Resource { - r := pdata.NewResource() - r.Attributes().InitFromMap(map[string]pdata.AttributeValue{conventions.AttributeServiceName: pdata.NewAttributeValueString(service)}) - return r -} - -func TestSpan_MatchingCornerCases(t *testing.T) { - cfg := &filterconfig.MatchProperties{ - Config: *createConfig(filterset.Strict), - Services: []string{"svcA"}, - Attributes: []filterconfig.Attribute{ - { - Key: "keyOne", - Value: nil, - }, - }, - } - - mp, err := NewMatcher(cfg) - assert.Nil(t, err) - assert.NotNil(t, mp) - - emptySpan := pdata.NewSpan() - emptySpan.InitEmpty() - assert.False(t, mp.MatchSpan(emptySpan, resource("svcA"), pdata.NewInstrumentationLibrary())) -} - func TestSpan_MissingServiceName(t *testing.T) { cfg := &filterconfig.MatchProperties{ Config: *createConfig(filterset.Regexp), @@ -280,7 +253,7 @@ func TestSpan_Matching_True(t *testing.T) { func TestServiceNameForResource(t *testing.T) { td := testdata.GenerateTraceDataOneSpanNoResource() - require.Equal(t, serviceNameForResource(td.ResourceSpans().At(0).Resource()), "") + require.Equal(t, serviceNameForResource(td.ResourceSpans().At(0).Resource()), "") td = testdata.GenerateTraceDataOneSpan() resource := td.ResourceSpans().At(0).Resource() diff --git a/processor/attributesprocessor/attributes_log_test.go b/processor/attributesprocessor/attributes_log_test.go index 99789c41771..8243b8ceab2 100644 --- a/processor/attributesprocessor/attributes_log_test.go +++ b/processor/attributesprocessor/attributes_log_test.go @@ -69,9 +69,7 @@ func sortLogAttributes(ld pdata.Logs) { if rs.IsNil() { continue } - if !rs.Resource().IsEmpty() { - rs.Resource().Attributes().Sort() - } + rs.Resource().Attributes().Sort() ilss := rss.At(i).InstrumentationLibraryLogs() for j := 0; j < ilss.Len(); j++ { ils := ilss.At(j) diff --git a/processor/attributesprocessor/attributes_trace_test.go b/processor/attributesprocessor/attributes_trace_test.go index 8ddff4ba4b0..612a83eb37c 100644 --- a/processor/attributesprocessor/attributes_trace_test.go +++ b/processor/attributesprocessor/attributes_trace_test.go @@ -74,9 +74,7 @@ func sortAttributes(td pdata.Traces) { if rs.IsNil() { continue } - if !rs.Resource().IsEmpty() { - rs.Resource().Attributes().Sort() - } + rs.Resource().Attributes().Sort() ilss := rss.At(i).InstrumentationLibrarySpans() for j := 0; j < ilss.Len(); j++ { ils := ilss.At(j) diff --git a/processor/resourceprocessor/resource_processor_test.go b/processor/resourceprocessor/resource_processor_test.go index 7cb37d024ea..74110ba674a 100644 --- a/processor/resourceprocessor/resource_processor_test.go +++ b/processor/resourceprocessor/resource_processor_test.go @@ -214,7 +214,7 @@ type testTraceConsumer struct { func (ttn *testTraceConsumer) ConsumeTraces(_ context.Context, td pdata.Traces) error { // sort attributes to be able to compare traces for i := 0; i < td.ResourceSpans().Len(); i++ { - sortResourceAttributes(td.ResourceSpans().At(i).Resource()) + td.ResourceSpans().At(i).Resource().Attributes().Sort() } ttn.td = td return nil @@ -227,7 +227,7 @@ type testMetricsConsumer struct { func (tmn *testMetricsConsumer) ConsumeMetrics(_ context.Context, md pdata.Metrics) error { // sort attributes to be able to compare traces for i := 0; i < md.ResourceMetrics().Len(); i++ { - sortResourceAttributes(md.ResourceMetrics().At(i).Resource()) + md.ResourceMetrics().At(i).Resource().Attributes().Sort() } tmn.md = md return nil @@ -240,15 +240,8 @@ type testLogsConsumer struct { func (tln *testLogsConsumer) ConsumeLogs(_ context.Context, ld pdata.Logs) error { // sort attributes to be able to compare traces for i := 0; i < ld.ResourceLogs().Len(); i++ { - sortResourceAttributes(ld.ResourceLogs().At(i).Resource()) + ld.ResourceLogs().At(i).Resource().Attributes().Sort() } tln.ld = ld return nil } - -func sortResourceAttributes(resource pdata.Resource) { - if resource.IsEmpty() { - return - } - resource.Attributes().Sort() -} diff --git a/processor/spanprocessor/span_test.go b/processor/spanprocessor/span_test.go index ed9a6145a9c..9dd85869baa 100644 --- a/processor/spanprocessor/span_test.go +++ b/processor/spanprocessor/span_test.go @@ -68,9 +68,7 @@ func runIndividualTestCase(t *testing.T, tt testCase, tp component.TracesProcess if rs.IsNil() { continue } - if !rs.Resource().IsEmpty() { - rs.Resource().Attributes().Sort() - } + rs.Resource().Attributes().Sort() ilss := rss.At(i).InstrumentationLibrarySpans() for j := 0; j < ilss.Len(); j++ { ils := ilss.At(j) diff --git a/testbed/tests/trace_test.go b/testbed/tests/trace_test.go index d9a423e1f82..7424d78dd3e 100644 --- a/testbed/tests/trace_test.go +++ b/testbed/tests/trace_test.go @@ -344,7 +344,6 @@ func verifySingleSpan( // Send one span. td := pdata.NewTraces() td.ResourceSpans().Resize(1) - td.ResourceSpans().At(0).Resource().InitEmpty() td.ResourceSpans().At(0).Resource().Attributes().InitFromMap(map[string]pdata.AttributeValue{ conventions.AttributeServiceName: pdata.NewAttributeValueString(serviceName), }) diff --git a/translator/internaldata/oc_to_resource_test.go b/translator/internaldata/oc_to_resource_test.go index f9469ab0894..37d85fabe90 100644 --- a/translator/internaldata/oc_to_resource_test.go +++ b/translator/internaldata/oc_to_resource_test.go @@ -31,12 +31,12 @@ import ( func TestOcNodeResourceToInternal(t *testing.T) { resource := pdata.NewResource() ocNodeResourceToInternal(nil, nil, resource) - assert.True(t, resource.IsEmpty()) + assert.Equal(t, 0, resource.Attributes().Len()) ocNode := &occommon.Node{} ocResource := &ocresource.Resource{} ocNodeResourceToInternal(ocNode, ocResource, resource) - assert.True(t, resource.IsEmpty()) + assert.Equal(t, 0, resource.Attributes().Len()) ocNode = generateOcNode() ocResource = generateOcResource() diff --git a/translator/internaldata/resource_to_oc.go b/translator/internaldata/resource_to_oc.go index 6e6f69a3333..41ebd6a2841 100644 --- a/translator/internaldata/resource_to_oc.go +++ b/translator/internaldata/resource_to_oc.go @@ -79,18 +79,13 @@ func getSDKLangToOCLangCodeMap() map[string]int32 { } func internalResourceToOC(resource pdata.Resource) (*occommon.Node, *ocresource.Resource) { - if resource.IsEmpty() { + attrs := resource.Attributes() + if attrs.Len() == 0 { return nil, nil } - attrs := resource.Attributes() ocNode := occommon.Node{} ocResource := ocresource.Resource{} - - if attrs.Len() == 0 { - return &ocNode, &ocResource - } - labels := make(map[string]string, attrs.Len()) attrs.ForEach(func(k string, v pdata.AttributeValue) { val := tracetranslator.AttributeValueToString(v, false) diff --git a/translator/internaldata/resource_to_oc_test.go b/translator/internaldata/resource_to_oc_test.go index 5ca89a71755..d2e5ccd6b60 100644 --- a/translator/internaldata/resource_to_oc_test.go +++ b/translator/internaldata/resource_to_oc_test.go @@ -241,22 +241,21 @@ func TestResourceToOCAndBack(t *testing.T) { ocNode, ocResource := internalResourceToOC(expected) actual := pdata.NewResource() ocNodeResourceToInternal(ocNode, ocResource, actual) - if expected.IsEmpty() { - assert.True(t, actual.IsEmpty()) - } else { - expected.Attributes().ForEach(func(k string, v pdata.AttributeValue) { - a, ok := actual.Attributes().Get(k) - assert.True(t, ok) - switch v.Type() { - case pdata.AttributeValueINT: - assert.Equal(t, strconv.FormatInt(v.IntVal(), 10), a.StringVal()) - case pdata.AttributeValueMAP, pdata.AttributeValueARRAY: - assert.Equal(t, a, a) - default: - assert.Equal(t, v, a) - } - }) - } + // Remove opencensus resource type from actual. This will be added during translation. + actual.Attributes().Delete(conventions.OCAttributeResourceType) + assert.Equal(t, expected.Attributes().Len(), actual.Attributes().Len()) + expected.Attributes().ForEach(func(k string, v pdata.AttributeValue) { + a, ok := actual.Attributes().Get(k) + assert.True(t, ok) + switch v.Type() { + case pdata.AttributeValueINT: + assert.Equal(t, strconv.FormatInt(v.IntVal(), 10), a.StringVal()) + case pdata.AttributeValueMAP, pdata.AttributeValueARRAY: + assert.Equal(t, a, a) + default: + assert.Equal(t, v, a) + } + }) }) } } diff --git a/translator/trace/jaeger/jaegerproto_to_traces.go b/translator/trace/jaeger/jaegerproto_to_traces.go index f308fe4fad7..1d42fe8592c 100644 --- a/translator/trace/jaeger/jaegerproto_to_traces.go +++ b/translator/trace/jaeger/jaegerproto_to_traces.go @@ -91,15 +91,12 @@ func protoBatchToResourceSpans(batch model.Batch, dest pdata.ResourceSpans) { } func jProcessToInternalResource(process *model.Process, dest pdata.Resource) { - if process == nil || process.ServiceName == tracetranslator.ResourceNotSet { + if process == nil || process.ServiceName == tracetranslator.ResourceNoServiceName { return } - serviceName := process.GetServiceName() - if serviceName == tracetranslator.ResourceNoAttrs { - return - } - tags := process.GetTags() + serviceName := process.ServiceName + tags := process.Tags if serviceName == "" && tags == nil { return } diff --git a/translator/trace/jaeger/jaegerproto_to_traces_test.go b/translator/trace/jaeger/jaegerproto_to_traces_test.go index 35a89b4bc20..c5d52a2bed2 100644 --- a/translator/trace/jaeger/jaegerproto_to_traces_test.go +++ b/translator/trace/jaeger/jaegerproto_to_traces_test.go @@ -207,7 +207,7 @@ func TestProtoBatchToInternalTraces(t *testing.T) { name: "no-resource-attrs", jb: model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNoAttrs, + ServiceName: tracetranslator.ResourceNoServiceName, }, }, td: generateTraceDataResourceOnlyWithNoAttrs(), @@ -217,7 +217,7 @@ func TestProtoBatchToInternalTraces(t *testing.T) { name: "one-span-no-resources", jb: model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpanWithTraceState(), @@ -229,7 +229,7 @@ func TestProtoBatchToInternalTraces(t *testing.T) { name: "two-spans-child-parent", jb: model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpan(), @@ -243,7 +243,7 @@ func TestProtoBatchToInternalTraces(t *testing.T) { name: "two-spans-with-follower", jb: model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpan(), @@ -265,7 +265,7 @@ func TestProtoBatchToInternalTraces(t *testing.T) { func TestProtoBatchToInternalTracesWithTwoLibraries(t *testing.T) { jb := model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ { diff --git a/translator/trace/jaeger/traces_to_jaegerproto.go b/translator/trace/jaeger/traces_to_jaegerproto.go index 5c995c9bd23..b5779daea31 100644 --- a/translator/trace/jaeger/traces_to_jaegerproto.go +++ b/translator/trace/jaeger/traces_to_jaegerproto.go @@ -57,7 +57,7 @@ func resourceSpansToJaegerProto(rs pdata.ResourceSpans) (*model.Batch, error) { resource := rs.Resource() ilss := rs.InstrumentationLibrarySpans() - if resource.IsEmpty() && ilss.Len() == 0 { + if resource.Attributes().Len() == 0 && ilss.Len() == 0 { return nil, nil } @@ -102,17 +102,11 @@ func resourceSpansToJaegerProto(rs pdata.ResourceSpans) (*model.Batch, error) { } func resourceToJaegerProtoProcess(resource pdata.Resource) *model.Process { - - process := model.Process{} - if resource.IsEmpty() { - process.ServiceName = tracetranslator.ResourceNotSet - return &process - } - + process := &model.Process{} attrs := resource.Attributes() if attrs.Len() == 0 { - process.ServiceName = tracetranslator.ResourceNoAttrs - return &process + process.ServiceName = tracetranslator.ResourceNoServiceName + return process } attrsCount := attrs.Len() if serviceName, ok := attrs.Get(conventions.AttributeServiceName); ok { @@ -120,12 +114,12 @@ func resourceToJaegerProtoProcess(resource pdata.Resource) *model.Process { attrsCount-- } if attrsCount == 0 { - return &process + return process } tags := make([]model.KeyValue, 0, attrsCount) process.Tags = appendTagsFromResourceAttributes(tags, attrs) - return &process + return process } diff --git a/translator/trace/jaeger/traces_to_jaegerproto_test.go b/translator/trace/jaeger/traces_to_jaegerproto_test.go index 986ccf13c47..f97efd77132 100644 --- a/translator/trace/jaeger/traces_to_jaegerproto_test.go +++ b/translator/trace/jaeger/traces_to_jaegerproto_test.go @@ -253,7 +253,7 @@ func TestInternalTracesToJaegerProto(t *testing.T) { td: generateTraceDataOneSpanNoResourceWithTraceState(), jb: &model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpanWithTraceState(), @@ -266,7 +266,7 @@ func TestInternalTracesToJaegerProto(t *testing.T) { td: generateTraceDataWithLibraryInfo(), jb: &model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpanWithLibraryInfo("io.opentelemetry.test"), @@ -279,7 +279,7 @@ func TestInternalTracesToJaegerProto(t *testing.T) { td: generateTraceDataTwoSpansChildParent(), jb: &model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpan(), @@ -294,7 +294,7 @@ func TestInternalTracesToJaegerProto(t *testing.T) { td: generateTraceDataTwoSpansWithFollower(), jb: &model.Batch{ Process: &model.Process{ - ServiceName: tracetranslator.ResourceNotSet, + ServiceName: tracetranslator.ResourceNoServiceName, }, Spans: []*model.Span{ generateProtoSpan(), diff --git a/translator/trace/protospan_translation.go b/translator/trace/protospan_translation.go index 6657edf7bec..4f778ea204e 100644 --- a/translator/trace/protospan_translation.go +++ b/translator/trace/protospan_translation.go @@ -55,8 +55,6 @@ const ( // Constants used for signifying batch-level attribute values where not supplied by OTLP data but required // by other protocols. const ( - ResourceNotSet = "OTLPResourceNotSet" - ResourceNoAttrs = "OTLPResourceNoAttributes" ResourceNoServiceName = "OTLPResourceNoServiceName" ) diff --git a/translator/trace/zipkin/traces_to_zipkinv2.go b/translator/trace/zipkin/traces_to_zipkinv2.go index 26b76a1f3e4..922e10cf391 100644 --- a/translator/trace/zipkin/traces_to_zipkinv2.go +++ b/translator/trace/zipkin/traces_to_zipkinv2.go @@ -64,7 +64,7 @@ func resourceSpansToZipkinSpans(rs pdata.ResourceSpans, estSpanCount int) ([]*zi resource := rs.Resource() ilss := rs.InstrumentationLibrarySpans() - if resource.IsEmpty() && ilss.Len() == 0 { + if resource.Attributes().Len() == 0 && ilss.Len() == 0 { return nil, nil } @@ -251,15 +251,10 @@ func removeRedundentTags(redundantKeys map[string]bool, zTags map[string]string) func resourceToZipkinEndpointServiceNameAndAttributeMap( resource pdata.Resource, ) (serviceName string, zTags map[string]string) { - zTags = make(map[string]string) - if resource.IsEmpty() { - return tracetranslator.ResourceNotSet, zTags - } - attrs := resource.Attributes() if attrs.Len() == 0 { - return tracetranslator.ResourceNoAttrs, zTags + return tracetranslator.ResourceNoServiceName, zTags } attrs.ForEach(func(k string, v pdata.AttributeValue) { diff --git a/translator/trace/zipkin/zipkinv2_to_traces.go b/translator/trace/zipkin/zipkinv2_to_traces.go index 82ad72161d4..0c3a272268c 100644 --- a/translator/trace/zipkin/zipkinv2_to_traces.go +++ b/translator/trace/zipkin/zipkinv2_to_traces.go @@ -368,8 +368,7 @@ func tagsToAttributeMap(tags map[string]string, dest pdata.AttributeMap, parseSt } func populateResourceFromZipkinSpan(tags map[string]string, localServiceName string, resource pdata.Resource) { - if tracetranslator.ResourceNotSet == localServiceName || - tracetranslator.ResourceNoAttrs == localServiceName { + if localServiceName == tracetranslator.ResourceNoServiceName { return } @@ -422,7 +421,7 @@ func copySpanTags(tags map[string]string) map[string]string { func extractLocalServiceName(zspan *zipkinmodel.SpanModel) string { if zspan == nil || zspan.LocalEndpoint == nil || zspan.LocalEndpoint.ServiceName == "" { - return tracetranslator.ResourceNotSet + return tracetranslator.ResourceNoServiceName } return zspan.LocalEndpoint.ServiceName }