Is this a new feature, an enhancement, or a change to existing functionality?
Enhancement
How would you describe the priority of this feature request
Medium
Please provide a clear description of problem this feature solves
NICo Hardware Health already discovers PowerShelf BMC endpoints and uses the
generic Redfish sensor, entity-metric, log, SSE, and health-report collectors.
EndpointMetadata::PowerShelf contains the NICo PowerShelf ID and serial
number. However, the shared OTLP resource-attribute conversion currently emits
component.type=power_shelf without exporting that PowerShelf ID or serial
number.
This differs from the existing switch contract, which exports switch.id and
switch.serial_number.
Consequently, an OTLP consumer can identify telemetry as originating from a
PowerShelf, but cannot reliably associate it with the corresponding NICo
PowerShelf resource without inferring identity from an IP address, MAC address,
or Redfish URI.
PowerShelf rack placement is tracked separately by #5446 and is not duplicated
by this issue.
Feature Description
As a consumer of NICo Hardware Health OTLP data, I want every log and metric
emitted for a managed PowerShelf BMC to carry stable PowerShelf identity, so
that observations can be correlated with the correct NICo PowerShelf without
endpoint-based inference.
When EndpointMetadata::PowerShelf contains an ID, Hardware Health shall add
the following OTLP resource attribute:
power_shelf.id=<PowerShelfId>
When PowerShelf metadata contains a serial number, Hardware Health shall add:
power_shelf.serial_number=<serial>
These attributes shall be emitted through the shared resource-attribute
conversion so that they apply consistently to both OTLP logs and metrics.
Existing attributes—including component.type=power_shelf,
collector.type, BMC endpoint information, and rack identity when
available—shall remain unchanged.
Attributes shall be omitted rather than fabricated when the corresponding
metadata is unavailable.
Describe your ideal solution
Extend the shared OTLP resource-attribute projection in crates/health to
handle EndpointMetadata::PowerShelf in the same manner that it currently
handles switch identity.
No PowerShelf-specific collector or output format should be required. Existing
sensor, entity-metric, periodic-log, SSE, and leak collectors should
automatically receive the identity attributes through the shared resource
context.
Describe any alternatives you have considered
No response
Additional context
Affected areas are expected to include:
crates/health/src/endpoint/model.rs
crates/health/src/otlp/convert.rs
- Related endpoint-context and OTLP conversion tests
Related public issue:
NICo already has generic PowerShelf collection paths. Any additional missing
sensor, PMC, redundancy, or vendor-specific evidence should be demonstrated
with sanitized fixtures and tracked as focused follow-up issues.
Code of Conduct
Is this a new feature, an enhancement, or a change to existing functionality?
Enhancement
How would you describe the priority of this feature request
Medium
Please provide a clear description of problem this feature solves
NICo Hardware Health already discovers PowerShelf BMC endpoints and uses the
generic Redfish sensor, entity-metric, log, SSE, and health-report collectors.
EndpointMetadata::PowerShelfcontains the NICo PowerShelf ID and serialnumber. However, the shared OTLP resource-attribute conversion currently emits
component.type=power_shelfwithout exporting that PowerShelf ID or serialnumber.
This differs from the existing switch contract, which exports
switch.idandswitch.serial_number.Consequently, an OTLP consumer can identify telemetry as originating from a
PowerShelf, but cannot reliably associate it with the corresponding NICo
PowerShelf resource without inferring identity from an IP address, MAC address,
or Redfish URI.
PowerShelf rack placement is tracked separately by #5446 and is not duplicated
by this issue.
Feature Description
As a consumer of NICo Hardware Health OTLP data, I want every log and metric
emitted for a managed PowerShelf BMC to carry stable PowerShelf identity, so
that observations can be correlated with the correct NICo PowerShelf without
endpoint-based inference.
When
EndpointMetadata::PowerShelfcontains an ID, Hardware Health shall addthe following OTLP resource attribute:
power_shelf.id=<PowerShelfId>When PowerShelf metadata contains a serial number, Hardware Health shall add:
power_shelf.serial_number=<serial>These attributes shall be emitted through the shared resource-attribute
conversion so that they apply consistently to both OTLP logs and metrics.
Existing attributes—including
component.type=power_shelf,collector.type, BMC endpoint information, and rack identity whenavailable—shall remain unchanged.
Attributes shall be omitted rather than fabricated when the corresponding
metadata is unavailable.
Describe your ideal solution
Extend the shared OTLP resource-attribute projection in
crates/healthtohandle
EndpointMetadata::PowerShelfin the same manner that it currentlyhandles switch identity.
No PowerShelf-specific collector or output format should be required. Existing
sensor, entity-metric, periodic-log, SSE, and leak collectors should
automatically receive the identity attributes through the shared resource
context.
Describe any alternatives you have considered
No response
Additional context
Affected areas are expected to include:
crates/health/src/endpoint/model.rscrates/health/src/otlp/convert.rsRelated public issue:
collector operational metrics.
NICo already has generic PowerShelf collection paths. Any additional missing
sensor, PMC, redundancy, or vendor-specific evidence should be demonstrated
with sanitized fixtures and tracked as focused follow-up issues.
Code of Conduct