Skip to content

fix(health): preserve Redfish OEM extensions in log records - #4749

Open
jayzhudev wants to merge 1 commit into
NVIDIA:mainfrom
jayzhudev:health/oem-extensions
Open

fix(health): preserve Redfish OEM extensions in log records#4749
jayzhudev wants to merge 1 commit into
NVIDIA:mainfrom
jayzhudev:health/oem-extensions

Conversation

@jayzhudev

Copy link
Copy Markdown
Contributor

Preserve OEM extensions when health converts Redfish events into log records. This helps downstream log consumers access vendor error identifiers or other OEM diagnostics.

Related issues

Resolves #4748

Type of Change

  • Add - New feature or capability
  • Change - Changes in existing functionality
  • Fix - Bug fixes
  • Remove - Removed features or deprecated functionality
  • Internal - Internal changes (refactoring, tests, docs, etc.)

Breaking Changes

  • This PR contains breaking changes

Testing

  • Unit tests added/updated
  • Integration tests added/updated
  • Manual testing performed
  • No testing required (docs, internal refactor, etc.)

@jayzhudev jayzhudev self-assigned this Aug 8, 2026
@jayzhudev
jayzhudev requested a review from a team as a code owner August 8, 2026 09:19
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Summary by CodeRabbit

  • New Features
    • Log records now retain Redfish event OEM extension data in a dedicated attribute.
    • OEM data is serialized and preserved for both streamed and periodic events.

Walkthrough

Health log conversion now preserves Redfish OEM extensions in SSE and periodic collection modes. OEM data is serialized under the redfish.oem attribute when present. An SSE test verifies Nvidia OEM data retention.

Changes

Redfish OEM log preservation

Layer / File(s) Summary
Periodic log OEM mapping
crates/health/src/collectors/logs/periodic.rs
Periodic log records append serialized OEM properties under redfish.oem when available.
SSE OEM mapping and validation
crates/health/src/collectors/logs/sse.rs
SSE event mapping appends OEM properties under redfish.oem. A test verifies serialized Nvidia OEM data retention.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely identifies the fix to preserve Redfish OEM extensions in health log records.
Description check ✅ Passed The description accurately explains the OEM extension preservation fix, its downstream value, linked issue, and unit test coverage.
Linked Issues check ✅ Passed The changes preserve OEM data in both SSE and periodic log records, satisfying the requirements in [#4748].
Out of Scope Changes check ✅ Passed The changes are limited to preserving Redfish OEM data in SSE and periodic health log record conversions and related tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Jay Zhu <jayzhu@nvidia.com>
@jayzhudev
jayzhudev force-pushed the health/oem-extensions branch from c108699 to 588b3de Compare August 8, 2026 09:32

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
crates/health/src/collectors/logs/periodic.rs (1)

429-434: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add periodic OEM regression coverage.

Add a test that supplies a deserialized LogEntry with Oem.Nvidia, runs periodic collection, and asserts that the emitted LogRecord contains the redfish.oem attribute.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/health/src/collectors/logs/periodic.rs` around lines 429 - 434, Add
periodic collector regression coverage around the OEM handling in the periodic
collection test suite: construct a deserialized LogEntry containing Oem.Nvidia,
run periodic collection, and assert the emitted LogRecord includes the
redfish.oem attribute populated from additional_properties.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@crates/health/src/collectors/logs/periodic.rs`:
- Around line 429-434: Add periodic collector regression coverage around the OEM
handling in the periodic collection test suite: construct a deserialized
LogEntry containing Oem.Nvidia, run periodic collection, and assert the emitted
LogRecord includes the redfish.oem attribute populated from
additional_properties.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 512bb9ad-c08e-48e4-854b-149399310716

📥 Commits

Reviewing files that changed from the base of the PR and between c108699 and 588b3de.

📒 Files selected for processing (2)
  • crates/health/src/collectors/logs/periodic.rs
  • crates/health/src/collectors/logs/sse.rs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: preserve Redfish OEM extensions in health log records

1 participant