Skip to content

Backport PR #357 to Umbrella branch - #367

Merged
harriscr merged 3 commits into
ceph:umbrellafrom
harriscr:ch_wip_umbrella_fix
Sep 21, 2026
Merged

harriscr merged 3 commits into
ceph:umbrellafrom
harriscr:ch_wip_umbrella_fix

Conversation

@harriscr

Copy link
Copy Markdown
Contributor

There is an error being seen when running the Umbrella branch that was fixed in PR #357. We should backport that PR to Umbrella to fix the issue

Chris Harris added 3 commits July 23, 2026 15:51
When generating a report CBT can pull CPU and memory usage from the fio output files. This is not very useful, however as it only reports the resource usage for the fio process itself.
CBT also supports running other resource monitoring tools such as top and collectl.
This PR deals with specifically plotting CPU and memory usage for collectl.

The basic infrastructure already existed, so all that was needed was the pieces to parse the collectl output files and store the resource usage data in the intermediate format.

The code changes were:
 - a factory method to instantiate the correct resource_result class to process resouce usage data
 - the collectl resource_result class
 - updates to the run_result to use the factory method
 - plot multiple CPU lines
 - unit tests fpr the new code

Signed-off-by: Chris Harris <harriscr@uk.ibm.com>
Assisted-by: IBM Bob 1.03 and 2.0
Resource monitoring in CBT is contained within the monitoring class in CBT. This file contains multiple classes, one for each potential tool to use.
To make this easier to maintain in the future and to meet current Python coding guidelines this should be split up into once class per file.
These should have a common abstract base class which they all ingerit from, and a factory method to make sure the expected monitoring classes are run

Signed-off-by: Chris Harris <harriscr@uk.ibm.com>
Assisted-by: IBM Bob 2.0
Add plotting of top and collectl resource monitoring to CBT.
This required a slight re-factoring of both top and perf monitoring as they were specifically targetted twards OSDs, requiring an OSD PID file and only monitoring OSD PIDs, no matter what arguments were passed.
There is now a generic TopMonitoring and PerfMonitoring class, which will run the arguments passed in the YAML, an an Osd*Monitoring class that will require the OSD PID file as the current behaviour.

Signed-off-by: Chris Harris: <harriscr@uk.ibm.com>
Assisted-by: IBM Bob v 2.0 and 2.0.1
@harriscr
harriscr requested a review from mohant-ibm September 21, 2026 09:46
@harriscr harriscr self-assigned this Sep 21, 2026
@harriscr harriscr added the backport A fix from main that needs to be back-ported to one of the older branches label Sep 21, 2026
@harriscr

Copy link
Copy Markdown
Contributor Author

Test completed successfully and a report was generated:

15:45:32 - INFO     - cbt      - Convert results to json format.
INFO - report: Creating directory /home/harriscr/perf/reports/ to contain the reports
INFO - report: Generating intermediate files for /home/harriscr/cbt_runs/results/00000000/id-94a6db48
INFO - common_output_formatter: Converting all files with name json_output in directory /home/harriscr/cbt_runs/results/00000000/id-94a6db48
INFO - simple_report_generator: Generating summary table

@harriscr
harriscr merged commit e5f6b26 into ceph:umbrella Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport A fix from main that needs to be back-ported to one of the older branches

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants