Skip to content

RPOPC-1307: Add multi-metric support for Passmark benchmark#39

Merged
grdumas merged 2 commits into
mainfrom
feat/RPOPC-1307-passmark-multi-metric
Jun 15, 2026
Merged

RPOPC-1307: Add multi-metric support for Passmark benchmark#39
grdumas merged 2 commits into
mainfrom
feat/RPOPC-1307-passmark-multi-metric

Conversation

@grdumas

@grdumas grdumas commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Extend primary_metrics support to Passmark benchmark to capture CPU Mark and Memory Mark as coequal metrics.

Acceptance Criteria

  • Passmark results include both marks in primary_metrics
  • Dashboard can display both CPU and memory scores from top-level results
  • Tests validate multi-metric extraction

Changes

  • Override _extract_primary_metrics() in PassmarkProcessor
  • Extract CPU Mark from SUMM_CPU_mean (aggregated CPU benchmark score)
  • Extract Memory Mark from SUMM_ME_mean (aggregated memory benchmark score)
  • Add integration tests for both single and multiple iteration scenarios

Testing

  • Unit tests added/updated
  • Integration tests passing (2 new tests)
  • All existing tests passing (264 total)

Related

Agent VM added 2 commits June 15, 2026 11:34
Add integration test that expects CPU Mark and Memory Mark as
primary_metrics. Test currently fails because _extract_primary_metrics()
is not implemented in PassmarkProcessor.

Part of RPOPC-1307.
Override _extract_primary_metrics() in PassmarkProcessor to extract both:
- CPU Mark from SUMM_CPU_mean
- Memory Mark from SUMM_ME_mean

Both metrics are important for system characterization.

Implements RPOPC-1307.

@grdumas grdumas left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

PR Review: RPOPC-1307: Add multi-metric support for Passmark benchmark

Summary

The PR successfully extends Passmark support to include both CPU Mark and Memory Mark as coequal primary metrics. This follows the established multi-metric pattern used in other processors (like SpecJBB) and provides a more comprehensive view of system performance.

Critical Issues (MUST FIX)

None found.

Security Delta

  • No security-relevant code was modified or removed.
  • Check of historical commits for passmark_processor.py showed no security-related patches that could be regressed by these changes.

Major Issues (SHOULD FIX)

None found.

Minor Issues (NICE TO HAVE)

None found.

Nitpicks (OPTIONAL)

  • In _extract_primary_metrics, the overall_stats argument is unused. This is fine as it correctly matches the BaseProcessor signature, but worth noting for future reference if Passmark stats ever need to be derived from overall aggregates.

Positive Notes

  • Consistency: The implementation of _extract_primary_metrics perfectly matches the pattern used in SpecJBBProcessor, maintaining good architectural consistency across the codebase.
  • Test Coverage: Two new integration tests in tests/test_passmark_integration.py provide excellent coverage for both single-iteration and multi-iteration scenarios.
  • Robustness: The logic correctly handles both dictionary and dataclass-based run objects, ensuring compatibility with different parts of the pipeline.

Overall Assessment

  • Status: APPROVE
  • Reasoning: The code is well-structured, follows project conventions, and includes comprehensive tests. It fulfills the requirements of RPOPC-1307 and aligns the implementation with existing documentation.
  • Next Steps: Merge the PR.

Reviewed by: Gemini Pro via automated code review

@grdumas grdumas left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

LGTM

@grdumas grdumas merged commit 56473c1 into main Jun 15, 2026
1 check passed
@grdumas grdumas deleted the feat/RPOPC-1307-passmark-multi-metric branch June 15, 2026 15:42
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: 280372b5-8a65-411c-a0d5-ab60c1d1d4d6

📥 Commits

Reviewing files that changed from the base of the PR and between 3502487 and 27b1c97.

📒 Files selected for processing (2)
  • src/chronicler/processors/passmark_processor.py
  • tests/test_passmark_integration.py

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting


📝 Walkthrough

Summary by CodeRabbit

Release Notes

  • New Features

    • PassmarkProcessor now extracts two primary metrics from Passmark benchmarks: CPU Mark and Memory Mark, reported as scores.
  • Tests

    • Added integration tests validating metric extraction from Passmark YAML results, covering single runs and multiple iterations.

Walkthrough

PassmarkProcessor gains a _extract_primary_metrics helper that reads SUMM_CPU_mean and SUMM_ME_mean from the first run's metrics and returns two PrimaryMetric objects ("CPU Mark" and "Memory Mark"). Two integration tests validate the extraction for single and multi-iteration Passmark YAML inputs.

Changes

Passmark Primary Metrics

Layer / File(s) Summary
_extract_primary_metrics implementation
src/chronicler/processors/passmark_processor.py
Adds PrimaryMetric and StatisticalSummary to schema imports; adds _extract_primary_metrics(runs, overall_stats) that reads the first run's metrics (supporting both dict and Run inputs), constructs CPU Mark and Memory Mark PrimaryMetric entries, and returns the list or None when data is absent.
Integration tests
tests/test_passmark_integration.py
Adds two integration tests under pytest.mark.integration: one covering a single YAML input asserting metric values from SUMM_CPU/SUMM_ME, and one covering two YAML files asserting metric values equal the mean across both iterations. Both patch archive_handler.extract_result_archive.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@grdumas grdumas self-assigned this Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add multi-metric support for Passmark benchmark

1 participant