Skip to content

Commit 8e185ab

Browse files
committed
[cmd/mdatagen] Fix entity extra_attributes emission
Fixes #14778 Fix `mdatagen` entity code generation so `extra_attributes` are emitted as resource attributes instead of entity descriptive attributes.
1 parent ec18380 commit 8e185ab

5 files changed

Lines changed: 33 additions & 4 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
change_type: bug_fix
2+
component: cmd/mdatagen
3+
note: Fix entity code generation so `extra_attributes` are emitted as resource attributes instead of entity descriptive attributes.
4+
issues: [14778]

cmd/mdatagen/internal/sampleentityreceiver/internal/metadata/generated_entity_metrics.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/mdatagen/internal/sampleentityreceiver/internal/metadata/generated_entity_metrics_test.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/mdatagen/internal/templates/entity_metrics.go.tmpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,11 @@ func (e *{{ $entityStructType }}) copyToResource(cfg ResourceAttributesConfig, r
128128
{{- $attr := index $resourceAttributes $extraAttr.Ref }}
129129
if cfg.{{ publicVar $extraAttr.Ref.Render }}.Enabled {
130130
{{- if eq $attr.Type.ValueType.String "Str" }}
131-
ent.DescriptiveAttributes().PutStr("{{ $extraAttr.Ref }}", e.{{ $extraAttr.Ref.RenderUnexported }})
131+
res.Attributes().PutStr("{{ $extraAttr.Ref }}", e.{{ $extraAttr.Ref.RenderUnexported }})
132132
{{- else if or (eq $attr.Type.ValueType.String "Map") (eq $attr.Type.ValueType.String "Slice") (eq $attr.Type.ValueType.String "Bytes") }}
133-
ent.DescriptiveAttributes().PutEmpty("{{ $extraAttr.Ref }}").SetEmpty{{ $attr.Type.ValueType }}().FromRaw(e.{{ $extraAttr.Ref.RenderUnexported }})
133+
res.Attributes().PutEmpty("{{ $extraAttr.Ref }}").SetEmpty{{ $attr.Type.ValueType }}().FromRaw(e.{{ $extraAttr.Ref.RenderUnexported }})
134134
{{- else }}
135-
ent.DescriptiveAttributes().PutEmpty("{{ $extraAttr.Ref }}").Set{{ $attr.Type.ValueType }}(e.{{ $extraAttr.Ref.RenderUnexported }})
135+
res.Attributes().PutEmpty("{{ $extraAttr.Ref }}").Set{{ $attr.Type.ValueType }}(e.{{ $extraAttr.Ref.RenderUnexported }})
136136
{{- end }}
137137
}
138138
{{- end }}

cmd/mdatagen/internal/templates/entity_metrics_test.go.tmpl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,20 @@ func TestEntityBuilders(t *testing.T) {
9797
require.True(t, ok)
9898
assert.Equal(t, {{ $attr.TestValue }}, attrVal.Str())
9999
{{- end }}
100+
{{- range $descAttr := $ent.Description }}
101+
{{- $attr := index $resourceAttributes $descAttr.Ref }}
102+
attrVal, ok := entityVal.DescriptiveAttributes().Get("{{ $descAttr.Ref }}")
103+
require.True(t, ok)
104+
assert.Equal(t, {{ $attr.TestValue }}, attrVal.Str())
105+
{{- end }}
106+
{{- range $extraAttr := $ent.ExtraAttributes }}
107+
{{- $attr := index $resourceAttributes $extraAttr.Ref }}
108+
_, ok = entityVal.DescriptiveAttributes().Get("{{ $extraAttr.Ref }}")
109+
assert.False(t, ok)
110+
attrVal, ok := rm.Resource().Attributes().Get("{{ $extraAttr.Ref }}")
111+
require.True(t, ok)
112+
assert.Equal(t, {{ $attr.TestValue }}, attrVal.Str())
113+
{{- end }}
100114

101115
require.Equal(t, 1, rm.ScopeMetrics().Len())
102116
ms := rm.ScopeMetrics().At(0).Metrics()

0 commit comments

Comments
 (0)