-
Notifications
You must be signed in to change notification settings - Fork 107
Add support for sysinfo via Tool Meister #1981
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
Add support for sysinfo via Tool Meister #1981
Conversation
|
This pull request introduces 1 alert when merging 9e56fca into f0c9aa0 - view on LGTM.com new alerts:
|
dbutenhof
left a comment
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.
Ah; the foundation looks good. Time to build the addition!
9e56fca to
aa73324
Compare
|
This pull request introduces 1 alert when merging aa73324 into f0c9aa0 - view on LGTM.com new alerts:
|
aa73324 to
05a70ad
Compare
|
This pull request introduces 1 alert when merging 05a70ad into 8bb4bef - view on LGTM.com new alerts:
|
05a70ad to
916c20a
Compare
|
This pull request introduces 1 alert when merging 916c20a into 6986c8d - view on LGTM.com new alerts:
|
317d993 to
3d85748
Compare
| ln -s "$(basename "${rdir}")" "$(dirname "${rdir}")/reference-result" | ||
| done | ||
|
|
||
| ${script_path}/postprocess/user-benchmark-wrapper "${benchmark_run_dir}" "${total_duration}" |
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.
In all the other bench-scripts we invoke pbench-metadata-log, then pbench-collect-sysinfo, and then pbench-tool-meister-stop. This change corrects pbench-user-benchmark to do the same.
However, we used to run the user-benchmark-wrapper after pbench-metadata-log and then pbench-tool-meister-stop, immediately before pbench-collect-sysinfo. Preserving that sequence was not possible, so we now run the user-benchmark-wrapper before we run the finalization sequence.
I don't think that will be a problem, but it seemed running it after everything would make the user wait longer for their optional script to run than it did before. This way it runs as soon as possible.
| self._tool_dir = None | ||
| # The temporary directory to use for capturing all tool data. | ||
| self._tmp_dir = os.environ.get("_PBENCH_TOOL_MEISTER_TMP", "/var/tmp") | ||
| self._tmp_dir = os.environ["pbench_tmp"] |
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.
This prevents us from using /var/tmp during the test runs, and brings the Tool Meister in-line with the other code using the ${pbench_run}/tmp directory.
portante
left a comment
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.
@RobertKrawitz, this adds support for collecting system information via Tool Meister, so now we no longer use ssh for any of that data collection.
dbutenhof
left a comment
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.
A few minor comments, but looks good.
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.
Sorry for delay, looks good, I agree with Dave that there may be a better way to handle the ("send, "sysinfo") tuples in the future, but not the most important thing.
Only issue I encountered was that it seems to be impossible to build rpms off this branch (would require changes to Makefile). This is the point it currently gets stuck:
cp -a cdm-get-iterations pbench-add-metalog-option pbench-agent-config-activate pbench-agent-config-ssh-key pbench-avg-stddev pbench-cleanup pbench-clear-results pbench-collect-sysinfo pbench-copy-results pbench-copy-result-tb pbench-end-tools pbench-get-iteration-metrics pbench-get-metric-data pbench-get-primary-metric pbench-import-cdm pbench-init-tools pbench-kill-tools pbench-list-tools pbench-log-timestamp pbench-make-result-tb pbench-metadata-log pbench-move-results pbench-output-monitor pbench-postprocess-tools pbench-postprocess-tools-cdm pbench-register-tool pbench-register-tool-set pbench-register-tool-trigger pbench-remote-sysinfo-dump pbench-send-tools pbench-start-tools pbench-stop-tools pbench-sysinfo-dump pbench-tool-meister-client pbench-tool-meister-start pbench-tool-meister-stop pbench-tool-trigger README require-rpm tool-meister /tmp/opt/pbench-agent-0.71.0/agent/util-scripts
cp: cannot stat 'pbench-remote-sysinfo-dump': No such file or directory
3d85748 to
1951380
Compare
dbutenhof
left a comment
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.
Looks good!
1951380 to
c731fc5
Compare
|
@dbutenhof, @Maxusmusti, I've collapsed the code review comments commit with the others to maintain the three separate comments, and I've updated the 3rd commits description, as well as this PR description. |
c731fc5 to
aad6209
Compare
The `pbench-collect-sysinfo` CLI interface has been modified to send a message to the Tool Meisters to have them collect all the requested system configuration information. Much like tool data is collected and sent back to the Tool Data Sink from each Tool Meister, the system information is collected by each Tool Meister and sent back to the Tool Data sink to be stored in the requested location. This means that `pbench-collect-sysinfo` no longer uses `ssh` to collect and copy the system information from remote hosts. As it is for tools running on the local host, the local Tool Meister write the collected data into the local volume directly without sending it through the Tool Data Sink. This change allows us to delete the `pbench-remote-sysinfo-dump` trampoline interface since the Tool Meister takes are of remote operations. Each benchmark-script has been modified to invoke the `pbench-collect-sysinfo` following the `pbench-tool-meister-start` call, and before the `pbench-tool-meister-stop` call. We fixed a small bug for `pbench-trafficgen` which was overwriting the "beginning" (`.../sysinfo/beg`) collected system information when collecting the "ending" (`.../sysinfo/end`) information.
aad6209 to
c77461c
Compare
ndokos
left a comment
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.
We are getting rid of pbench-remote-sysinfo-dump? Wha's the world coming to?
Maxusmusti
left a comment
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.
Built and tested, it all works!
The change to rename `tool-scripts/README` to `tool-scripts/README.md` in commit 6d1ccbf broke the RPM builds. Here we backuport the fix on `master` from PR distributed-system-analysis#1981, in commit 455b9dc.
Add support for collecting system configuration information via the Tool Meister sub-system.
The
pbench-collect-sysinfoCLI interface has been modified to send a message to the Tool Meisters to have them collect all the requested system configuration information. Much like tool data is collected and sent back to the Tool Data Sink from each Tool Meister, the system information is collected by each Tool Meister and sent back to the Tool Data sink to be stored in the requested location.This means that
pbench-collect-sysinfono longer usessshto collect and copy the system information from remote hosts. As it is for tools running on the local host, the local Tool Meister write the collected data into the local volume directly without sending it through the Tool Data Sink.This change allows us to delete the
pbench-remote-sysinfo-dumptrampoline interface since the Tool Meister takes care of remote operations.Each benchmark-script has been modified to invoke the
pbench-collect-sysinfofollowing thepbench-tool-meister-startcall, and before thepbench-tool-meister-stopcall.We fixed a small bug for
pbench-trafficgenwhich was overwriting the "beginning" (.../sysinfo/beg) collected system information when collecting the "ending" (.../sysinfo/end) information.The first 2 commits are small, isolated, changes to stop sub-classing
objectin Python 3 (now the default), and to clean up an instance of using f-strings in logging statements.