Skip to content

Commit 10b0228

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 10b0228

6 files changed

Lines changed: 52 additions & 20 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/sampleconnector/internal/metadata/generated_entity_metrics_test.go

Lines changed: 7 additions & 4 deletions
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.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: 19 additions & 8 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: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,23 @@ func TestEntityBuilders(t *testing.T) {
9393
{{- $attr := index $resourceAttributes $idAttr.Ref }}
9494
entityVal, ok := entity.ResourceEntities(rm.Resource()).Get("{{ $entityType }}")
9595
require.True(t, ok)
96-
attrVal, ok := entityVal.IdentifyingAttributes().Get("{{ $idAttr.Ref }}")
96+
{{ $idAttr.Ref.RenderUnexported }}AttrVal, ok := entityVal.IdentifyingAttributes().Get("{{ $idAttr.Ref }}")
9797
require.True(t, ok)
98-
assert.Equal(t, {{ $attr.TestValue }}, attrVal.Str())
98+
assert.Equal(t, {{ $attr.TestValue }}, {{ $idAttr.Ref.RenderUnexported }}AttrVal.Str())
99+
{{- end }}
100+
{{- range $descAttr := $ent.Description }}
101+
{{- $attr := index $resourceAttributes $descAttr.Ref }}
102+
{{ $descAttr.Ref.RenderUnexported }}AttrVal, ok := entityVal.DescriptiveAttributes().Get("{{ $descAttr.Ref }}")
103+
require.True(t, ok)
104+
assert.Equal(t, {{ $attr.TestValue }}, {{ $descAttr.Ref.RenderUnexported }}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+
{{ $extraAttr.Ref.RenderUnexported }}AttrVal, ok := rm.Resource().Attributes().Get("{{ $extraAttr.Ref }}")
111+
require.True(t, ok)
112+
assert.Equal(t, {{ $attr.TestValue }}, {{ $extraAttr.Ref.RenderUnexported }}AttrVal.Str())
99113
{{- end }}
100114

101115
require.Equal(t, 1, rm.ScopeMetrics().Len())
@@ -214,9 +228,9 @@ func TestEntityBuilders(t *testing.T) {
214228
require.True(t, ok)
215229
{{- range $idAttr := $ent.Identity }}
216230
{{- $attr := index $resourceAttributes $idAttr.Ref }}
217-
attrVal, ok := entityVal.IdentifyingAttributes().Get("{{ $idAttr.Ref }}")
231+
{{ $idAttr.Ref.RenderUnexported }}AttrVal, ok := entityVal.IdentifyingAttributes().Get("{{ $idAttr.Ref }}")
218232
require.True(t, ok)
219-
assert.Equal(t, {{ $attr.TestValue }}, attrVal.Str())
233+
assert.Equal(t, {{ $attr.TestValue }}, {{ $idAttr.Ref.RenderUnexported }}AttrVal.Str())
220234
{{- end }}
221235
// Disabled descriptive/extra attributes must not be present.
222236
{{- range $descAttr := $ent.Description }}

0 commit comments

Comments
 (0)