https://github.com/pnlbwh/dashboard is a lightweight dashboard for monitoring project progress
Developed by Tashrif Billah and Sylvain Bouix, Brigham and Women's Hospital (Harvard Medical School)
See example dashboard at https://pnlservers.bwh.harvard.edu/cte/dashboard.html
Table of Contents created by gh-md-toc
The following libraries are required:
- pandas
- DT
See dash_config.ini and edit according to your file/directory paths.
See https://github.com/pnlbwh/luigi-pnlpipe/tree/master/params . This configuration file is optional. If you provide it, then it will be printed in the dashboard.
scripts/dashboard.py -h
usage: dashboard.py [-h] [--dash-config DASH_CONFIG]
[--pipe-config PIPE_CONFIG]
[outDir]
A lightweight dashboard for monitoring project progress
See details at https://github.com/pnlbwh/dashboard
positional arguments:
outDir output directory for report files, default PWD/report-PID
optional arguments:
-h, --help show this help message and exit
--dash-config DASH_CONFIG
config file for generating dashboard, default PWD/dash_config.ini
--pipe-config PIPE_CONFIG
optional, config file for the pipeline
See examples at https://github.com/pnlbwh/luigi-pnlpipe/tree/master/params
# dash_config.ini exists in the PWD, writes to default outDir, --pipe-config unavailable
scripts/dashboard.py
# dash_config.ini exists in the PWD, writes to provided outDir, --pipe-config unavailable
scripts/dashboard.py /tmp/report
# dash_config.ini exists in the PWD, writes to provided outDir, --pipe-config available
scripts/dashboard.py /tmp/report --pipe-config ~/luigi-pnlpipe/params/struct_pipe_params.cfg
# dash_config.ini does not exist in the PWD, writes to provided outDir, --pipe-config available
scripts/dashboard.py /tmp/report --dash-config /path/to/config.ini --pipe-config ~/luigi-pnlpipe/params/struct_pipe_params.cfg
while [ 1 ];
do
echo Updating dashboard ...;
scripts/dashboard.py /tmp/report --dash-config /path/to/config.ini --pipe-config ~/luigi-pnlpipe/params/struct_pipe_params.cfg;
echo Updated at `date`;
echo Sleeping ...;
sleep 15m;
done
The above loop can be replaced by a cron job. Save the content in report.cron
and:
crontab -u pnl -e
and write */15 * * * * /path/to/report.cron
to run the job every 15 minutes.