-
Notifications
You must be signed in to change notification settings - Fork 2
Improve usage.json schema #110
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
Conversation
Marked as "draft" (and leaving the tests failing) until I'm done with #106 but review welcome |
f3b9b30
to
0b84eee
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #110 +/- ##
==========================================
- Coverage 93.60% 93.00% -0.61%
==========================================
Files 2 2
Lines 344 343 -1
Branches 57 56 -1
==========================================
- Hits 322 319 -3
- Misses 16 18 +2
Partials 6 6 ☔ View full report in Codecov by Sentry. |
to be merged (and hopefully auto-released) after #113 |
"rss_kb": self.total_rss, | ||
"vsz_kb": self.total_vsz, | ||
}, | ||
"averages": asdict(self.averages) if self.averages.num_samples >= 1 else {}, |
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.
yes, this looks cleaner.
I guess unrelated -- what is "totals"? aren't they "max" through the time so we could see how much needed? Where is total wallclock run time (in seconds)? is there a way to get total cpu run time as well?
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.
"max through time" is not recorded in usage.json
. The usage file contains nothing about the full run, it is only (aggregated) samples.
The "totals" in this case are total of all processes. ie, if the inner command forks and is running multiple processes simultaneously, the totals
will report on the command as a whole, rather than per process.
The total wallclock run time is recorded in the info.json
under execution_summary
which should not be confused with the "totals" of a single sample. Since we are recording wall clock time and average cpu utilization, do we need cpu time? If so, lets file a separate issue.
info.json
{
"command": "sleep 5",
"system": {
"uid": "austin",
"memory_total": 33336778752,
"cpu_total": 20
},
"env": {},
"gpu": null,
"duct_version": "0.0.1",
"execution_summary": {
"exit_code": 0,
"command": "sleep 5",
"logs_prefix": "ZZZZ_",
"wall_clock_time": "5.003 sec",
"peak_rss": "1920 KiB",
"average_rss": "1920.000 KiB",
"peak_vsz": "221584 KiB",
"average_vsz": "221584.000 KiB",
"peak_pmem": "0.0%",
"average_pmem": "0.000%",
"peak_pcpu": "0.0%",
"average_pcpu": "0.000%",
"num_samples": 4,
"num_reports": 3
}
}
dab5401
to
80256d5
Compare
Fixes #109