-
Notifications
You must be signed in to change notification settings - Fork 225
enable perf_evaluation notifier #4090
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
2b92dec to
3b2a7d7
Compare
7b7748b to
c7497b8
Compare
c7497b8 to
07864a5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request introduces a new performance evaluation notifier for the LISA testing framework. The notifier validates performance test results against predefined criteria and can optionally fail tests when performance targets are not met.
Key Changes:
- Implements a comprehensive performance evaluation system with support for both JSON and YAML criteria files
- Adds flexible VM size pattern matching with fuzzy matching capabilities for Azure VM naming conventions
- Introduces hierarchical criteria format with group-based condition matching for test cases and VM sizes
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 17 comments.
Show a summary per file
| File | Description |
|---|---|
| lisa/notifiers/perfevaluation/perfevaluation.py | Main implementation of the PerfEvaluation notifier with metric evaluation logic, criteria loading, and test result modification capabilities |
| lisa/notifiers/perfevaluation/perf_tcp_ntttcp_sriov_criteria.json | Performance criteria definitions for TCP NTTTCP SRIOV tests across various VM sizes with detailed metrics for throughput, latency, and network performance |
| lisa/notifiers/perfevaluation/perf_nvme_criteria.yml | YAML-based hierarchical criteria for NVMe storage performance tests with group-based conditions for specific VM sizes |
| lisa/notifiers/perfevaluation/init.py | Package initialization exposing public classes (PerfEvaluation, PerfEvaluationSchema, MetricCriteria) |
| lisa/mixin_modules.py | Registration of the new perfevaluation notifier module for plugin system integration |
| docs/run_test/runbook.rst | Comprehensive documentation for the perfevaluation notifier including usage examples, parameters, and configuration formats |
Test Suggestions (per LISA Testing Guidelines):
Key Test Cases:
Since this PR adds a new notifier component without modifying existing test execution logic, comprehensive unit tests should be added rather than integration tests. The notifier functionality should be validated through:
- Unit tests for the PerfEvaluation class (suggested in selftests/test_perfevaluation.py)
- Pattern matching validation tests
- Criteria loading and parsing tests
Impacted LISA Features:
This change does not directly impact existing LISA features but adds a new capability for performance evaluation and reporting.
Tested Azure Marketplace Images:
No specific Azure marketplace image testing is required for this PR, as it introduces infrastructure code (a notifier) rather than platform-specific test cases. The notifier will be exercised indirectly when performance tests run on any image that generates UnifiedPerfMessage results.
lisa/notifiers/perfevaluation/perf_tcp_ntttcp_sriov_criteria.json
Outdated
Show resolved
Hide resolved
8cb8d8f to
632aee5
Compare
632aee5 to
5dd0a54
Compare
No description provided.