From 73747ae7882b5faa5d849494364b1bc06e0b0c91 Mon Sep 17 00:00:00 2001 From: Pablo Baeyens Date: Thu, 30 Nov 2023 10:40:42 +0100 Subject: [PATCH] [processor/resourcedetection] Graduate `processor.resourcedetection.hostCPUModelAndFamilyAsString` to beta (#29462) **Description:** Follow up to #29152. The feature gate has been in alpha for two releases (v0.89.0 and v0.90.0). **Link to tracking Issue:** Relates to #29025 and to open-telemetry/semantic-conventions/issues/495. **Testing:** Tested with the sample configuration on #26533. --- .chloggen/mx-psi_rdp-fg.yaml | 28 +++++++++++++++++++ .../internal/system/system.go | 14 +++++----- 2 files changed, 35 insertions(+), 7 deletions(-) create mode 100755 .chloggen/mx-psi_rdp-fg.yaml diff --git a/.chloggen/mx-psi_rdp-fg.yaml b/.chloggen/mx-psi_rdp-fg.yaml new file mode 100755 index 000000000000..a637744fd36e --- /dev/null +++ b/.chloggen/mx-psi_rdp-fg.yaml @@ -0,0 +1,28 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: bug_fix + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: resourcedetectionprocessor + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Change type of `host.cpu.model.id` and `host.cpu.model.family` from int to string. + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +issues: [29025] + +# (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: | + - Disable the `processor.resourcedetection.hostCPUModelAndFamilyAsString` feature gate to get the old behavior. + +# 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: [] diff --git a/processor/resourcedetectionprocessor/internal/system/system.go b/processor/resourcedetectionprocessor/internal/system/system.go index cecce5c1a10f..c7e5c754974d 100644 --- a/processor/resourcedetectionprocessor/internal/system/system.go +++ b/processor/resourcedetectionprocessor/internal/system/system.go @@ -25,7 +25,7 @@ var ( hostCPUModelAndFamilyAsStringID = "processor.resourcedetection.hostCPUModelAndFamilyAsString" hostCPUModelAndFamilyAsStringFeatureGate = featuregate.GlobalRegistry().MustRegister( hostCPUModelAndFamilyAsStringID, - featuregate.StageAlpha, + featuregate.StageBeta, featuregate.WithRegisterDescription("Change type of host.cpu.model.id and host.cpu.model.family to string."), featuregate.WithRegisterFromVersion("v0.89.0"), featuregate.WithRegisterReferenceURL("https://github.com/open-telemetry/semantic-conventions/issues/495"), @@ -160,13 +160,13 @@ func setHostCPUInfo(d *Detector, cpuInfo cpu.InfoStat) error { d.logger.Debug("getting host's cpuinfo", zap.String("coreID", cpuInfo.CoreID)) d.rb.SetHostCPUVendorID(cpuInfo.VendorID) if hostCPUModelAndFamilyAsStringFeatureGate.IsEnabled() { - d.rb.SetHostCPUFamily(cpuInfo.Family) - } else { // https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/29025 - d.logger.Warn("This attribute will change from int to string. Switch now using the feature gate.", + d.logger.Info("This attribute changed from int to string. Temporarily switch back to int using the feature gate.", zap.String("attribute", "host.cpu.family"), zap.String("feature gate", hostCPUModelAndFamilyAsStringID), ) + d.rb.SetHostCPUFamily(cpuInfo.Family) + } else { family, err := strconv.ParseInt(cpuInfo.Family, 10, 64) if err != nil { return fmt.Errorf("failed to convert cpuinfo family to integer: %w", err) @@ -179,13 +179,13 @@ func setHostCPUInfo(d *Detector, cpuInfo cpu.InfoStat) error { // ISSUE: https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/27675 if cpuInfo.Model != "" { if hostCPUModelAndFamilyAsStringFeatureGate.IsEnabled() { - d.rb.SetHostCPUModelID(cpuInfo.Model) - } else { // https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/29025 - d.logger.Warn("This attribute will change from int to string. Switch now using the feature gate.", + d.logger.Info("This attribute changed from int to string. Temporarily switch back to int using the feature gate.", zap.String("attribute", "host.cpu.model.id"), zap.String("feature gate", hostCPUModelAndFamilyAsStringID), ) + d.rb.SetHostCPUModelID(cpuInfo.Model) + } else { model, err := strconv.ParseInt(cpuInfo.Model, 10, 64) if err != nil { return fmt.Errorf("failed to convert cpuinfo model to integer: %w", err)