Esempio n. 1
0
def get_workload(wf_name):
    qs = BalsamJob.objects.filter(workflow=wf_name)
    time_data = process_job_times(qs)
    times, num_running = utilization_report(time_data)
    times = [str(t) for t in times]
    num_running = [int(n) for n in num_running]
    return times, num_running
Esempio n. 2
0
def main():
    ''' simple starter program that can be copied for use when starting a new script. '''
    logging_format = '%(asctime)s %(levelname)s:%(name)s:%(message)s'
    logging_datefmt = '%Y-%m-%d %H:%M:%S'
    logging_level = logging.INFO

    parser = argparse.ArgumentParser(description='')
    parser.add_argument('-w',
                        '--workflow',
                        help='workflow name to analyze',
                        required=True)
    parser.add_argument('--debug',
                        dest='debug',
                        default=False,
                        action='store_true',
                        help="Set Logger to DEBUG")
    parser.add_argument('--error',
                        dest='error',
                        default=False,
                        action='store_true',
                        help="Set Logger to ERROR")
    parser.add_argument('--warning',
                        dest='warning',
                        default=False,
                        action='store_true',
                        help="Set Logger to ERROR")
    parser.add_argument('--logfilename',
                        dest='logfilename',
                        default=None,
                        help='if set, logging information will go to file')
    args = parser.parse_args()

    if args.debug and not args.error and not args.warning:
        logging_level = logging.DEBUG
    elif not args.debug and args.error and not args.warning:
        logging_level = logging.ERROR
    elif not args.debug and not args.error and args.warning:
        logging_level = logging.WARNING

    logging.basicConfig(level=logging_level,
                        format=logging_format,
                        datefmt=logging_datefmt,
                        filename=args.logfilename)

    qs = BalsamJob.objects.filter(workflow=args.workflow)
    dat = process_job_times(qs)
    times, utils = utilization_report(dat)

    plt.step(times, utils, where="post")
    plt.waitforbuttonpress()