Provided by: con-duct_0.11.0-2_all 

NAME
duct - lightweight wrapper that collects execution data for a command
DESCRIPTION
usage: duct [-h] [--version] [-p OUTPUT_PREFIX]
[--summary-format SUMMARY_FORMAT] [--colors] [--clobber] [-l
{NONE,CRITICAL,ERROR,WARNING,INFO,DEBUG}] [-q] [--sample-interval SAMPLE_INTERVAL]
[--report-interval REPORT_INTERVAL] [--fail-time FAIL_TIME] [-c {all,none,stdout,stderr}] [-o
{all,none,stdout,stderr}] [-t {all,system-summary,processes-samples}] command [command_args ...]
...
duct is a lightweight wrapper that collects execution data for an arbitrary command. Execution data
includes execution time, system information, and resource usage statistics of the command and all its
child processes. It is intended to simplify the problem of recording the resources necessary to execute a
command, particularly in an HPC environment.
Resource usage is determined by polling (at a sample-interval). During execution, duct produces a JSON
lines (see https://jsonlines.org) file with one data point recorded for each report (at a
report-interval).
environment variables:
Many duct options can be configured by environment variables (which are overridden by command line
options).
DUCT_LOG_LEVEL: see --log-level DUCT_OUTPUT_PREFIX: see --output-prefix DUCT_SUMMARY_FORMAT: see
--summary-format DUCT_SAMPLE_INTERVAL: see --sample-interval DUCT_REPORT_INTERVAL: see
--report-interval DUCT_CAPTURE_OUTPUTS: see --capture-outputs
positional arguments:
command [command_args ...]
The command to execute, along with its arguments.
command_args
Arguments for the command.
options:
-h, --help
show this help message and exit
--version
show program's version number and exit
-p, --output-prefix OUTPUT_PREFIX
File string format to be used as a prefix for the files -- the captured stdout and stderr and the
resource usage logs. The understood variables are {datetime}, {datetime_filesafe}, and {pid}.
Leading directories will be created if they do not exist. You can also provide value via
DUCT_OUTPUT_PREFIX env variable. (default: .duct/logs/{datetime_filesafe}-{pid}_)
--summary-format SUMMARY_FORMAT
Output template to use when printing the summary following execution. Accepts custom conversion
flags: !S: Converts filesizes to human readable units, green if measured, red if None. !E: Colors
exit code, green if falsey, red if truthy, and red if None. !X: Colors green if truthy, red if
falsey. !N: Colors green if not None, red if None (default: Summary: Exit Code: {exit_code!E}
Command: {command} Log files location: {logs_prefix} Wall Clock Time: {wall_clock_time:.3f} sec
Memory Peak Usage (RSS): {peak_rss!S} Memory Average Usage (RSS): {average_rss!S} Virtual Memory
Peak Usage (VSZ): {peak_vsz!S} Virtual Memory Average Usage (VSZ): {average_vsz!S} Memory Peak
Percentage: {peak_pmem:.2f!N}% Memory Average Percentage: {average_pmem:.2f!N}% CPU Peak Usage:
{peak_pcpu:.2f!N}% Average CPU Usage: {average_pcpu:.2f!N}% )
--colors
Use colors in duct output. (default: False)
--clobber
Replace log files if they already exist. (default: False)
-l, --log-level {NONE,CRITICAL,ERROR,WARNING,INFO,DEBUG}
Level of log output to stderr, use NONE to entirely disable. (default: INFO)
-q, --quiet
[deprecated, use log level NONE] Disable duct logging output (to stderr) (default: False)
--sample-interval, --s-i SAMPLE_INTERVAL
Interval in seconds between status checks of the running process. Sample interval must be less
than or equal to report interval, and it achieves the best results when sample is significantly
less than the runtime of the process. (default: 1.0)
--report-interval, --r-i REPORT_INTERVAL
Interval in seconds at which to report aggregated data. (default: 60.0)
--fail-time, --f-t FAIL_TIME
If command fails in less than this specified time (seconds), duct would remove logs. Set to 0 if
you would like to keep logs for a failing command regardless of its run time. Set to negative
(e.g. -1) if you would like to not keep logs for any failing command. (default: 3.0)
-c, --capture-outputs {all,none,stdout,stderr}
Record stdout, stderr, all, or none to log files. You can also provide value via
DUCT_CAPTURE_OUTPUTS env variable. (default: all)
-o, --outputs {all,none,stdout,stderr}
Print stdout, stderr, all, or none to stdout/stderr respectively. (default: all)
-t, --record-types {all,system-summary,processes-samples}
Record system-summary, processes-samples, or all (default: all)
duct 0.11.0 May 2025 DUCT(1)