From 6395729f9af676718219550ec42869b861925ed2 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 20 Feb 2026 17:01:25 +0530 Subject: [PATCH 1/8] [receiver/redfish] Follow semantic conventions for resource attributes --- .chloggen/redfish-semantic-convention.yaml | 29 +++++++++++++++++++ receiver/redfishreceiver/documentation.md | 2 ++ .../internal/metadata/generated_config.go | 8 +++++ .../metadata/generated_config_test.go | 8 +++++ .../internal/metadata/generated_metrics.go | 12 ++++++++ .../metadata/generated_metrics_test.go | 2 ++ .../internal/metadata/generated_resource.go | 14 +++++++++ .../metadata/generated_resource_test.go | 16 ++++++++-- .../internal/metadata/testdata/config.yaml | 24 +++++++++++++++ receiver/redfishreceiver/metadata.yaml | 8 +++++ receiver/redfishreceiver/scraper.go | 1 + 11 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 .chloggen/redfish-semantic-convention.yaml diff --git a/.chloggen/redfish-semantic-convention.yaml b/.chloggen/redfish-semantic-convention.yaml new file mode 100644 index 0000000000000..0e02a56f537bc --- /dev/null +++ b/.chloggen/redfish-semantic-convention.yaml @@ -0,0 +1,29 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: deprecation + +# The name of the component, or a single word describing the area of concern, (e.g. receiver/filelog) +component: receiver/redfish + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: | + Deprecate `system.host_name` resource attribute in favor of `host.name`. + Deprecate `base_url` resource attribute in favor of `url.full`. + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +issues: [44653] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: + +# If your change doesn't affect end users or the exported elements of any package, +# you should instead start your pull request title with [chore] or use the "Skip Changelog" label. +# Optional: The change log or logs in which this entry should be included. +# e.g. '[user]' or '[user, api]' +# Include 'user' if the change is relevant to end users. +# Include 'api' if there is a change to a library API. +# Default: '[user]' +change_logs: [user] \ No newline at end of file diff --git a/receiver/redfishreceiver/documentation.md b/receiver/redfishreceiver/documentation.md index 182699bdb4531..4e412ec964d21 100644 --- a/receiver/redfishreceiver/documentation.md +++ b/receiver/redfishreceiver/documentation.md @@ -237,4 +237,6 @@ Measures the state of a chassis temperature (-1 unknown, 0 disabled, 1 enabled). | Name | Description | Values | Enabled | | ---- | ----------- | ------ | ------- | | base_url | base url. | Any Str | true | +| host.name | System host name. | Any Str | true | | system.host_name | System host name. | Any Str | true | +| url.full | Full URL of Redfish API endpoint. | Any Str | true | diff --git a/receiver/redfishreceiver/internal/metadata/generated_config.go b/receiver/redfishreceiver/internal/metadata/generated_config.go index dbee234781038..f932d420d24cd 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_config.go +++ b/receiver/redfishreceiver/internal/metadata/generated_config.go @@ -113,7 +113,9 @@ func (rac *ResourceAttributeConfig) Unmarshal(parser *confmap.Conf) error { // ResourceAttributesConfig provides config for redfish resource attributes. type ResourceAttributesConfig struct { BaseURL ResourceAttributeConfig `mapstructure:"base_url"` + HostName ResourceAttributeConfig `mapstructure:"host.name"` SystemHostName ResourceAttributeConfig `mapstructure:"system.host_name"` + URLFull ResourceAttributeConfig `mapstructure:"url.full"` } func DefaultResourceAttributesConfig() ResourceAttributesConfig { @@ -121,9 +123,15 @@ func DefaultResourceAttributesConfig() ResourceAttributesConfig { BaseURL: ResourceAttributeConfig{ Enabled: true, }, + HostName: ResourceAttributeConfig{ + Enabled: true, + }, SystemHostName: ResourceAttributeConfig{ Enabled: true, }, + URLFull: ResourceAttributeConfig{ + Enabled: true, + }, } } diff --git a/receiver/redfishreceiver/internal/metadata/generated_config_test.go b/receiver/redfishreceiver/internal/metadata/generated_config_test.go index 85450c481c66d..a0099dea50322 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_config_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_config_test.go @@ -41,7 +41,9 @@ func TestMetricsBuilderConfig(t *testing.T) { }, ResourceAttributes: ResourceAttributesConfig{ BaseURL: ResourceAttributeConfig{Enabled: true}, + HostName: ResourceAttributeConfig{Enabled: true}, SystemHostName: ResourceAttributeConfig{Enabled: true}, + URLFull: ResourceAttributeConfig{Enabled: true}, }, }, }, @@ -64,7 +66,9 @@ func TestMetricsBuilderConfig(t *testing.T) { }, ResourceAttributes: ResourceAttributesConfig{ BaseURL: ResourceAttributeConfig{Enabled: false}, + HostName: ResourceAttributeConfig{Enabled: false}, SystemHostName: ResourceAttributeConfig{Enabled: false}, + URLFull: ResourceAttributeConfig{Enabled: false}, }, }, }, @@ -101,14 +105,18 @@ func TestResourceAttributesConfig(t *testing.T) { name: "all_set", want: ResourceAttributesConfig{ BaseURL: ResourceAttributeConfig{Enabled: true}, + HostName: ResourceAttributeConfig{Enabled: true}, SystemHostName: ResourceAttributeConfig{Enabled: true}, + URLFull: ResourceAttributeConfig{Enabled: true}, }, }, { name: "none_set", want: ResourceAttributesConfig{ BaseURL: ResourceAttributeConfig{Enabled: false}, + HostName: ResourceAttributeConfig{Enabled: false}, SystemHostName: ResourceAttributeConfig{Enabled: false}, + URLFull: ResourceAttributeConfig{Enabled: false}, }, }, } diff --git a/receiver/redfishreceiver/internal/metadata/generated_metrics.go b/receiver/redfishreceiver/internal/metadata/generated_metrics.go index 39e1a49634dbc..98be70f6a6e6f 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_metrics.go +++ b/receiver/redfishreceiver/internal/metadata/generated_metrics.go @@ -814,12 +814,24 @@ func NewMetricsBuilder(mbc MetricsBuilderConfig, settings receiver.Settings, opt if mbc.ResourceAttributes.BaseURL.MetricsExclude != nil { mb.resourceAttributeExcludeFilter["base_url"] = filter.CreateFilter(mbc.ResourceAttributes.BaseURL.MetricsExclude) } + if mbc.ResourceAttributes.HostName.MetricsInclude != nil { + mb.resourceAttributeIncludeFilter["host.name"] = filter.CreateFilter(mbc.ResourceAttributes.HostName.MetricsInclude) + } + if mbc.ResourceAttributes.HostName.MetricsExclude != nil { + mb.resourceAttributeExcludeFilter["host.name"] = filter.CreateFilter(mbc.ResourceAttributes.HostName.MetricsExclude) + } if mbc.ResourceAttributes.SystemHostName.MetricsInclude != nil { mb.resourceAttributeIncludeFilter["system.host_name"] = filter.CreateFilter(mbc.ResourceAttributes.SystemHostName.MetricsInclude) } if mbc.ResourceAttributes.SystemHostName.MetricsExclude != nil { mb.resourceAttributeExcludeFilter["system.host_name"] = filter.CreateFilter(mbc.ResourceAttributes.SystemHostName.MetricsExclude) } + if mbc.ResourceAttributes.URLFull.MetricsInclude != nil { + mb.resourceAttributeIncludeFilter["url.full"] = filter.CreateFilter(mbc.ResourceAttributes.URLFull.MetricsInclude) + } + if mbc.ResourceAttributes.URLFull.MetricsExclude != nil { + mb.resourceAttributeExcludeFilter["url.full"] = filter.CreateFilter(mbc.ResourceAttributes.URLFull.MetricsExclude) + } for _, op := range options { op.apply(mb) diff --git a/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go b/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go index 195f1f4367e63..729d289c74883 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go @@ -117,7 +117,9 @@ func TestMetricsBuilder(t *testing.T) { rb := mb.NewResourceBuilder() rb.SetBaseURL("base_url-val") + rb.SetHostName("host.name-val") rb.SetSystemHostName("system.host_name-val") + rb.SetURLFull("url.full-val") res := rb.Emit() metrics := mb.Emit(WithResource(res)) diff --git a/receiver/redfishreceiver/internal/metadata/generated_resource.go b/receiver/redfishreceiver/internal/metadata/generated_resource.go index 02d232d236109..c12f4a92d4cc5 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_resource.go +++ b/receiver/redfishreceiver/internal/metadata/generated_resource.go @@ -28,6 +28,13 @@ func (rb *ResourceBuilder) SetBaseURL(val string) { } } +// SetHostName sets provided value as "host.name" attribute. +func (rb *ResourceBuilder) SetHostName(val string) { + if rb.config.HostName.Enabled { + rb.res.Attributes().PutStr("host.name", val) + } +} + // SetSystemHostName sets provided value as "system.host_name" attribute. func (rb *ResourceBuilder) SetSystemHostName(val string) { if rb.config.SystemHostName.Enabled { @@ -35,6 +42,13 @@ func (rb *ResourceBuilder) SetSystemHostName(val string) { } } +// SetURLFull sets provided value as "url.full" attribute. +func (rb *ResourceBuilder) SetURLFull(val string) { + if rb.config.URLFull.Enabled { + rb.res.Attributes().PutStr("url.full", val) + } +} + // Emit returns the built resource and resets the internal builder state. func (rb *ResourceBuilder) Emit() pcommon.Resource { r := rb.res diff --git a/receiver/redfishreceiver/internal/metadata/generated_resource_test.go b/receiver/redfishreceiver/internal/metadata/generated_resource_test.go index 308926d95cec4..6257cb47fb8ac 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_resource_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_resource_test.go @@ -14,16 +14,18 @@ func TestResourceBuilder(t *testing.T) { cfg := loadResourceAttributesConfig(t, tt) rb := NewResourceBuilder(cfg) rb.SetBaseURL("base_url-val") + rb.SetHostName("host.name-val") rb.SetSystemHostName("system.host_name-val") + rb.SetURLFull("url.full-val") res := rb.Emit() assert.Equal(t, 0, rb.Emit().Attributes().Len()) // Second call should return empty Resource switch tt { case "default": - assert.Equal(t, 2, res.Attributes().Len()) + assert.Equal(t, 4, res.Attributes().Len()) case "all_set": - assert.Equal(t, 2, res.Attributes().Len()) + assert.Equal(t, 4, res.Attributes().Len()) case "none_set": assert.Equal(t, 0, res.Attributes().Len()) return @@ -36,11 +38,21 @@ func TestResourceBuilder(t *testing.T) { if ok { assert.Equal(t, "base_url-val", val.Str()) } + val, ok = res.Attributes().Get("host.name") + assert.True(t, ok) + if ok { + assert.Equal(t, "host.name-val", val.Str()) + } val, ok = res.Attributes().Get("system.host_name") assert.True(t, ok) if ok { assert.Equal(t, "system.host_name-val", val.Str()) } + val, ok = res.Attributes().Get("url.full") + assert.True(t, ok) + if ok { + assert.Equal(t, "url.full-val", val.Str()) + } }) } } diff --git a/receiver/redfishreceiver/internal/metadata/testdata/config.yaml b/receiver/redfishreceiver/internal/metadata/testdata/config.yaml index 23a20bd918e31..05681c450017c 100644 --- a/receiver/redfishreceiver/internal/metadata/testdata/config.yaml +++ b/receiver/redfishreceiver/internal/metadata/testdata/config.yaml @@ -28,8 +28,12 @@ all_set: resource_attributes: base_url: enabled: true + host.name: + enabled: true system.host_name: enabled: true + url.full: + enabled: true none_set: metrics: chassis.powerstate: @@ -59,25 +63,45 @@ none_set: resource_attributes: base_url: enabled: false + host.name: + enabled: false system.host_name: enabled: false + url.full: + enabled: false filter_set_include: resource_attributes: base_url: enabled: true metrics_include: - regexp: ".*" + host.name: + enabled: true + metrics_include: + - regexp: ".*" system.host_name: enabled: true metrics_include: - regexp: ".*" + url.full: + enabled: true + metrics_include: + - regexp: ".*" filter_set_exclude: resource_attributes: base_url: enabled: true metrics_exclude: - strict: "base_url-val" + host.name: + enabled: true + metrics_exclude: + - strict: "host.name-val" system.host_name: enabled: true metrics_exclude: - strict: "system.host_name-val" + url.full: + enabled: true + metrics_exclude: + - strict: "url.full-val" diff --git a/receiver/redfishreceiver/metadata.yaml b/receiver/redfishreceiver/metadata.yaml index 53dd7b6882b9a..8392e4d0e07f8 100644 --- a/receiver/redfishreceiver/metadata.yaml +++ b/receiver/redfishreceiver/metadata.yaml @@ -12,10 +12,18 @@ resource_attributes: description: base url. type: string enabled: true + host.name: + description: System host name. + type: string + enabled: true system.host_name: description: System host name. type: string enabled: true + url.full: + description: Full URL of Redfish API endpoint. + type: string + enabled: true attributes: chassis.asset_tag: diff --git a/receiver/redfishreceiver/scraper.go b/receiver/redfishreceiver/scraper.go index 6f31b819943a2..11bef35b1987f 100644 --- a/receiver/redfishreceiver/scraper.go +++ b/receiver/redfishreceiver/scraper.go @@ -95,6 +95,7 @@ func (s *redfishScraper) start(_ context.Context, _ component.Host) error { // and add their metrics to a metrics buffer func (s *redfishScraper) scrape(_ context.Context) (pmetric.Metrics, error) { s.logger.Info("scraping redfish...") + s.logger.Warn("resource attributes system.host_name and base_url are deprecated in favor of host.name and url.full respectively. Deprecated attributes will be removed in subsequent versions") errs := &scrapererror.ScrapeErrors{} for _, client := range s.clients { From c195a0897b816aa4bc74ad73e275eddfc1b466ed Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 20 Feb 2026 17:06:44 +0530 Subject: [PATCH 2/8] add changelog entry --- .chloggen/redfish-semantic-convention.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.chloggen/redfish-semantic-convention.yaml b/.chloggen/redfish-semantic-convention.yaml index 0e02a56f537bc..b7567cf603540 100644 --- a/.chloggen/redfish-semantic-convention.yaml +++ b/.chloggen/redfish-semantic-convention.yaml @@ -12,7 +12,7 @@ note: | Deprecate `base_url` resource attribute in favor of `url.full`. # Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. -issues: [44653] +issues: [46236] # (Optional) One or more lines of additional information to render under the primary note. # These lines will be padded with 2 spaces and then inserted directly into the document. From 5897942ae0148ef06040720cb69e5f11c17dc652 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Mon, 23 Feb 2026 13:49:17 +0530 Subject: [PATCH 3/8] make generate-schemas --- receiver/redfishreceiver/internal/metadata/config.schema.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/receiver/redfishreceiver/internal/metadata/config.schema.yaml b/receiver/redfishreceiver/internal/metadata/config.schema.yaml index 8cf8712f32ba6..a8196874ba78f 100644 --- a/receiver/redfishreceiver/internal/metadata/config.schema.yaml +++ b/receiver/redfishreceiver/internal/metadata/config.schema.yaml @@ -63,5 +63,9 @@ $defs: properties: base_url: $ref: resource_attribute_config + host.name: + $ref: resource_attribute_config system.host_name: $ref: resource_attribute_config + url.full: + $ref: resource_attribute_config From 61c16cb10e8fac859404e877e8dc08520efa9d15 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Thu, 5 Mar 2026 16:08:02 +0530 Subject: [PATCH 4/8] remove attributes since component is in development phase --- receiver/redfishreceiver/documentation.md | 2 -- .../redfishreceiver/generated_package_test.go | 3 +-- .../internal/metadata/generated_config.go | 12 ++------- .../metadata/generated_config_test.go | 25 +++++++------------ .../internal/metadata/generated_metrics.go | 12 --------- .../metadata/generated_metrics_test.go | 2 -- .../internal/metadata/generated_resource.go | 14 ----------- .../metadata/generated_resource_test.go | 18 +++---------- .../internal/metadata/testdata/config.yaml | 24 ------------------ receiver/redfishreceiver/metadata.yaml | 8 ------ receiver/redfishreceiver/scraper.go | 5 ++-- 11 files changed, 17 insertions(+), 108 deletions(-) diff --git a/receiver/redfishreceiver/documentation.md b/receiver/redfishreceiver/documentation.md index 4e412ec964d21..804eaf8a58195 100644 --- a/receiver/redfishreceiver/documentation.md +++ b/receiver/redfishreceiver/documentation.md @@ -236,7 +236,5 @@ Measures the state of a chassis temperature (-1 unknown, 0 disabled, 1 enabled). | Name | Description | Values | Enabled | | ---- | ----------- | ------ | ------- | -| base_url | base url. | Any Str | true | | host.name | System host name. | Any Str | true | -| system.host_name | System host name. | Any Str | true | | url.full | Full URL of Redfish API endpoint. | Any Str | true | diff --git a/receiver/redfishreceiver/generated_package_test.go b/receiver/redfishreceiver/generated_package_test.go index 755fe66ef70e6..ce319892e1296 100644 --- a/receiver/redfishreceiver/generated_package_test.go +++ b/receiver/redfishreceiver/generated_package_test.go @@ -3,9 +3,8 @@ package redfishreceiver import ( - "testing" - "go.uber.org/goleak" + "testing" ) func TestMain(m *testing.M) { diff --git a/receiver/redfishreceiver/internal/metadata/generated_config.go b/receiver/redfishreceiver/internal/metadata/generated_config.go index f932d420d24cd..a20ae92f9e768 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_config.go +++ b/receiver/redfishreceiver/internal/metadata/generated_config.go @@ -112,23 +112,15 @@ func (rac *ResourceAttributeConfig) Unmarshal(parser *confmap.Conf) error { // ResourceAttributesConfig provides config for redfish resource attributes. type ResourceAttributesConfig struct { - BaseURL ResourceAttributeConfig `mapstructure:"base_url"` - HostName ResourceAttributeConfig `mapstructure:"host.name"` - SystemHostName ResourceAttributeConfig `mapstructure:"system.host_name"` - URLFull ResourceAttributeConfig `mapstructure:"url.full"` + HostName ResourceAttributeConfig `mapstructure:"host.name"` + URLFull ResourceAttributeConfig `mapstructure:"url.full"` } func DefaultResourceAttributesConfig() ResourceAttributesConfig { return ResourceAttributesConfig{ - BaseURL: ResourceAttributeConfig{ - Enabled: true, - }, HostName: ResourceAttributeConfig{ Enabled: true, }, - SystemHostName: ResourceAttributeConfig{ - Enabled: true, - }, URLFull: ResourceAttributeConfig{ Enabled: true, }, diff --git a/receiver/redfishreceiver/internal/metadata/generated_config_test.go b/receiver/redfishreceiver/internal/metadata/generated_config_test.go index a0099dea50322..be3b25d2c55d0 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_config_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_config_test.go @@ -9,6 +9,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/confmap" "go.opentelemetry.io/collector/confmap/confmaptest" ) @@ -40,10 +41,8 @@ func TestMetricsBuilderConfig(t *testing.T) { TemperatureStatusState: MetricConfig{Enabled: true}, }, ResourceAttributes: ResourceAttributesConfig{ - BaseURL: ResourceAttributeConfig{Enabled: true}, - HostName: ResourceAttributeConfig{Enabled: true}, - SystemHostName: ResourceAttributeConfig{Enabled: true}, - URLFull: ResourceAttributeConfig{Enabled: true}, + HostName: ResourceAttributeConfig{Enabled: true}, + URLFull: ResourceAttributeConfig{Enabled: true}, }, }, }, @@ -65,10 +64,8 @@ func TestMetricsBuilderConfig(t *testing.T) { TemperatureStatusState: MetricConfig{Enabled: false}, }, ResourceAttributes: ResourceAttributesConfig{ - BaseURL: ResourceAttributeConfig{Enabled: false}, - HostName: ResourceAttributeConfig{Enabled: false}, - SystemHostName: ResourceAttributeConfig{Enabled: false}, - URLFull: ResourceAttributeConfig{Enabled: false}, + HostName: ResourceAttributeConfig{Enabled: false}, + URLFull: ResourceAttributeConfig{Enabled: false}, }, }, }, @@ -104,19 +101,15 @@ func TestResourceAttributesConfig(t *testing.T) { { name: "all_set", want: ResourceAttributesConfig{ - BaseURL: ResourceAttributeConfig{Enabled: true}, - HostName: ResourceAttributeConfig{Enabled: true}, - SystemHostName: ResourceAttributeConfig{Enabled: true}, - URLFull: ResourceAttributeConfig{Enabled: true}, + HostName: ResourceAttributeConfig{Enabled: true}, + URLFull: ResourceAttributeConfig{Enabled: true}, }, }, { name: "none_set", want: ResourceAttributesConfig{ - BaseURL: ResourceAttributeConfig{Enabled: false}, - HostName: ResourceAttributeConfig{Enabled: false}, - SystemHostName: ResourceAttributeConfig{Enabled: false}, - URLFull: ResourceAttributeConfig{Enabled: false}, + HostName: ResourceAttributeConfig{Enabled: false}, + URLFull: ResourceAttributeConfig{Enabled: false}, }, }, } diff --git a/receiver/redfishreceiver/internal/metadata/generated_metrics.go b/receiver/redfishreceiver/internal/metadata/generated_metrics.go index 98be70f6a6e6f..07a539eb3296e 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_metrics.go +++ b/receiver/redfishreceiver/internal/metadata/generated_metrics.go @@ -808,24 +808,12 @@ func NewMetricsBuilder(mbc MetricsBuilderConfig, settings receiver.Settings, opt resourceAttributeIncludeFilter: make(map[string]filter.Filter), resourceAttributeExcludeFilter: make(map[string]filter.Filter), } - if mbc.ResourceAttributes.BaseURL.MetricsInclude != nil { - mb.resourceAttributeIncludeFilter["base_url"] = filter.CreateFilter(mbc.ResourceAttributes.BaseURL.MetricsInclude) - } - if mbc.ResourceAttributes.BaseURL.MetricsExclude != nil { - mb.resourceAttributeExcludeFilter["base_url"] = filter.CreateFilter(mbc.ResourceAttributes.BaseURL.MetricsExclude) - } if mbc.ResourceAttributes.HostName.MetricsInclude != nil { mb.resourceAttributeIncludeFilter["host.name"] = filter.CreateFilter(mbc.ResourceAttributes.HostName.MetricsInclude) } if mbc.ResourceAttributes.HostName.MetricsExclude != nil { mb.resourceAttributeExcludeFilter["host.name"] = filter.CreateFilter(mbc.ResourceAttributes.HostName.MetricsExclude) } - if mbc.ResourceAttributes.SystemHostName.MetricsInclude != nil { - mb.resourceAttributeIncludeFilter["system.host_name"] = filter.CreateFilter(mbc.ResourceAttributes.SystemHostName.MetricsInclude) - } - if mbc.ResourceAttributes.SystemHostName.MetricsExclude != nil { - mb.resourceAttributeExcludeFilter["system.host_name"] = filter.CreateFilter(mbc.ResourceAttributes.SystemHostName.MetricsExclude) - } if mbc.ResourceAttributes.URLFull.MetricsInclude != nil { mb.resourceAttributeIncludeFilter["url.full"] = filter.CreateFilter(mbc.ResourceAttributes.URLFull.MetricsInclude) } diff --git a/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go b/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go index 729d289c74883..9a40b69b7f8ff 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_metrics_test.go @@ -116,9 +116,7 @@ func TestMetricsBuilder(t *testing.T) { mb.RecordTemperatureStatusStateDataPoint(ts, 1, "chassis.id-val", "temperature.name-val") rb := mb.NewResourceBuilder() - rb.SetBaseURL("base_url-val") rb.SetHostName("host.name-val") - rb.SetSystemHostName("system.host_name-val") rb.SetURLFull("url.full-val") res := rb.Emit() metrics := mb.Emit(WithResource(res)) diff --git a/receiver/redfishreceiver/internal/metadata/generated_resource.go b/receiver/redfishreceiver/internal/metadata/generated_resource.go index c12f4a92d4cc5..567361716c127 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_resource.go +++ b/receiver/redfishreceiver/internal/metadata/generated_resource.go @@ -21,13 +21,6 @@ func NewResourceBuilder(rac ResourceAttributesConfig) *ResourceBuilder { } } -// SetBaseURL sets provided value as "base_url" attribute. -func (rb *ResourceBuilder) SetBaseURL(val string) { - if rb.config.BaseURL.Enabled { - rb.res.Attributes().PutStr("base_url", val) - } -} - // SetHostName sets provided value as "host.name" attribute. func (rb *ResourceBuilder) SetHostName(val string) { if rb.config.HostName.Enabled { @@ -35,13 +28,6 @@ func (rb *ResourceBuilder) SetHostName(val string) { } } -// SetSystemHostName sets provided value as "system.host_name" attribute. -func (rb *ResourceBuilder) SetSystemHostName(val string) { - if rb.config.SystemHostName.Enabled { - rb.res.Attributes().PutStr("system.host_name", val) - } -} - // SetURLFull sets provided value as "url.full" attribute. func (rb *ResourceBuilder) SetURLFull(val string) { if rb.config.URLFull.Enabled { diff --git a/receiver/redfishreceiver/internal/metadata/generated_resource_test.go b/receiver/redfishreceiver/internal/metadata/generated_resource_test.go index 6257cb47fb8ac..cdc9acebd8938 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_resource_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_resource_test.go @@ -13,9 +13,7 @@ func TestResourceBuilder(t *testing.T) { t.Run(tt, func(t *testing.T) { cfg := loadResourceAttributesConfig(t, tt) rb := NewResourceBuilder(cfg) - rb.SetBaseURL("base_url-val") rb.SetHostName("host.name-val") - rb.SetSystemHostName("system.host_name-val") rb.SetURLFull("url.full-val") res := rb.Emit() @@ -23,9 +21,9 @@ func TestResourceBuilder(t *testing.T) { switch tt { case "default": - assert.Equal(t, 4, res.Attributes().Len()) + assert.Equal(t, 2, res.Attributes().Len()) case "all_set": - assert.Equal(t, 4, res.Attributes().Len()) + assert.Equal(t, 2, res.Attributes().Len()) case "none_set": assert.Equal(t, 0, res.Attributes().Len()) return @@ -33,21 +31,11 @@ func TestResourceBuilder(t *testing.T) { assert.Failf(t, "unexpected test case: %s", tt) } - val, ok := res.Attributes().Get("base_url") - assert.True(t, ok) - if ok { - assert.Equal(t, "base_url-val", val.Str()) - } - val, ok = res.Attributes().Get("host.name") + val, ok := res.Attributes().Get("host.name") assert.True(t, ok) if ok { assert.Equal(t, "host.name-val", val.Str()) } - val, ok = res.Attributes().Get("system.host_name") - assert.True(t, ok) - if ok { - assert.Equal(t, "system.host_name-val", val.Str()) - } val, ok = res.Attributes().Get("url.full") assert.True(t, ok) if ok { diff --git a/receiver/redfishreceiver/internal/metadata/testdata/config.yaml b/receiver/redfishreceiver/internal/metadata/testdata/config.yaml index 05681c450017c..768b679c83066 100644 --- a/receiver/redfishreceiver/internal/metadata/testdata/config.yaml +++ b/receiver/redfishreceiver/internal/metadata/testdata/config.yaml @@ -26,12 +26,8 @@ all_set: temperature.status.state: enabled: true resource_attributes: - base_url: - enabled: true host.name: enabled: true - system.host_name: - enabled: true url.full: enabled: true none_set: @@ -61,46 +57,26 @@ none_set: temperature.status.state: enabled: false resource_attributes: - base_url: - enabled: false host.name: enabled: false - system.host_name: - enabled: false url.full: enabled: false filter_set_include: resource_attributes: - base_url: - enabled: true - metrics_include: - - regexp: ".*" host.name: enabled: true metrics_include: - regexp: ".*" - system.host_name: - enabled: true - metrics_include: - - regexp: ".*" url.full: enabled: true metrics_include: - regexp: ".*" filter_set_exclude: resource_attributes: - base_url: - enabled: true - metrics_exclude: - - strict: "base_url-val" host.name: enabled: true metrics_exclude: - strict: "host.name-val" - system.host_name: - enabled: true - metrics_exclude: - - strict: "system.host_name-val" url.full: enabled: true metrics_exclude: diff --git a/receiver/redfishreceiver/metadata.yaml b/receiver/redfishreceiver/metadata.yaml index e6aa8d93ca9f4..255ec6a5293bb 100644 --- a/receiver/redfishreceiver/metadata.yaml +++ b/receiver/redfishreceiver/metadata.yaml @@ -8,18 +8,10 @@ status: active: [steven-freed, khushijain21] resource_attributes: - base_url: - description: base url. - type: string - enabled: true host.name: description: System host name. type: string enabled: true - system.host_name: - description: System host name. - type: string - enabled: true url.full: description: Full URL of Redfish API endpoint. type: string diff --git a/receiver/redfishreceiver/scraper.go b/receiver/redfishreceiver/scraper.go index 11bef35b1987f..2a3e3c74529c9 100644 --- a/receiver/redfishreceiver/scraper.go +++ b/receiver/redfishreceiver/scraper.go @@ -95,7 +95,6 @@ func (s *redfishScraper) start(_ context.Context, _ component.Host) error { // and add their metrics to a metrics buffer func (s *redfishScraper) scrape(_ context.Context) (pmetric.Metrics, error) { s.logger.Info("scraping redfish...") - s.logger.Warn("resource attributes system.host_name and base_url are deprecated in favor of host.name and url.full respectively. Deprecated attributes will be removed in subsequent versions") errs := &scrapererror.ScrapeErrors{} for _, client := range s.clients { @@ -147,8 +146,8 @@ func (s *redfishScraper) scrape(_ context.Context) (pmetric.Metrics, error) { // Always present - resource attributes rb := s.mb.NewResourceBuilder() - rb.SetBaseURL(baseURL) - rb.SetSystemHostName(compSys.HostName) + rb.SetURLFull(baseURL) + rb.SetHostName(compSys.HostName) s.mb.EmitForResource(metadata.WithResource(rb.Emit())) } From ebc0073f55923a3fddde9808fd7d188a32f57ea8 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 6 Mar 2026 14:15:49 +0530 Subject: [PATCH 5/8] Update .chloggen/redfish-semantic-convention.yaml Co-authored-by: Andrzej Stencel --- .chloggen/redfish-semantic-convention.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.chloggen/redfish-semantic-convention.yaml b/.chloggen/redfish-semantic-convention.yaml index b7567cf603540..ff9faa3983983 100644 --- a/.chloggen/redfish-semantic-convention.yaml +++ b/.chloggen/redfish-semantic-convention.yaml @@ -1,7 +1,7 @@ # Use this changelog template to create an entry for release notes. # One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: deprecation +change_type: breaking # The name of the component, or a single word describing the area of concern, (e.g. receiver/filelog) component: receiver/redfish From c8bc7d3c2b89d3e38da62ed69866ceea4222aa95 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Mon, 9 Mar 2026 11:20:12 +0530 Subject: [PATCH 6/8] fix all comments --- .chloggen/redfish-semantic-convention.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.chloggen/redfish-semantic-convention.yaml b/.chloggen/redfish-semantic-convention.yaml index ff9faa3983983..1b07d4ca771d7 100644 --- a/.chloggen/redfish-semantic-convention.yaml +++ b/.chloggen/redfish-semantic-convention.yaml @@ -8,8 +8,7 @@ component: receiver/redfish # A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). note: | - Deprecate `system.host_name` resource attribute in favor of `host.name`. - Deprecate `base_url` resource attribute in favor of `url.full`. + `system.host_name` and `base_url` resource attribute has been changed to `host.name` and `url.full` respectively. # Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. issues: [46236] From 20d05e6a51530e59b07effdee01c89e24aff5a2f Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Mon, 9 Mar 2026 11:55:36 +0530 Subject: [PATCH 7/8] fix lint --- receiver/redfishreceiver/generated_package_test.go | 3 ++- .../redfishreceiver/internal/metadata/generated_config_test.go | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/receiver/redfishreceiver/generated_package_test.go b/receiver/redfishreceiver/generated_package_test.go index ce319892e1296..755fe66ef70e6 100644 --- a/receiver/redfishreceiver/generated_package_test.go +++ b/receiver/redfishreceiver/generated_package_test.go @@ -3,8 +3,9 @@ package redfishreceiver import ( - "go.uber.org/goleak" "testing" + + "go.uber.org/goleak" ) func TestMain(m *testing.M) { diff --git a/receiver/redfishreceiver/internal/metadata/generated_config_test.go b/receiver/redfishreceiver/internal/metadata/generated_config_test.go index be3b25d2c55d0..4868b7c4d91ae 100644 --- a/receiver/redfishreceiver/internal/metadata/generated_config_test.go +++ b/receiver/redfishreceiver/internal/metadata/generated_config_test.go @@ -9,7 +9,6 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/confmap" "go.opentelemetry.io/collector/confmap/confmaptest" ) From 730277955ebc148eaeda937ec7c28c4ebc28f322 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Tue, 10 Mar 2026 14:30:08 +0530 Subject: [PATCH 8/8] make generate --- .../redfishreceiver/internal/metadata/config.schema.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/receiver/redfishreceiver/internal/metadata/config.schema.yaml b/receiver/redfishreceiver/internal/metadata/config.schema.yaml index 48eddfdc27e80..67afcb5715baa 100644 --- a/receiver/redfishreceiver/internal/metadata/config.schema.yaml +++ b/receiver/redfishreceiver/internal/metadata/config.schema.yaml @@ -92,8 +92,8 @@ $defs: description: ResourceAttributesConfig provides config for redfish resource attributes. type: object properties: - base_url: - description: ResourceAttributeConfig provides common config for a base_url resource attribute. + host.name: + description: ResourceAttributeConfig provides common config for a host.name resource attribute. type: object properties: enabled: @@ -109,8 +109,8 @@ $defs: type: array items: $ref: go.opentelemetry.io/collector/filter.config - system.host_name: - description: ResourceAttributeConfig provides common config for a system.host_name resource attribute. + url.full: + description: ResourceAttributeConfig provides common config for a url.full resource attribute. type: object properties: enabled: