예제 #1
0
def generate_series():
    session = api.get_session()
    if CONF.start_date:
        start_date = datetime.datetime.strptime(CONF.start_date, '%Y-%m-%d')
    else:
        start_date = None
    if CONF.stop_date:
        stop_date = datetime.datetime.strptime(CONF.stop_date, '%Y-%m-%d')
    else:
        stop_date = None
    run_times = api.get_run_times_grouped_by_run_metadata_key(
        CONF.command.metadata_key, start_date=start_date,
        stop_date=stop_date, session=session)
    df = pd.DataFrame(dict(
        [(k, pd.Series(v)) for k, v in run_times.iteritems()]))
    if not CONF.title:
        title = "Run aggregate run time grouped by metadata"
    else:
        title = CONF.title
    # NOTE(mtreinish): Decrease label font size for the worst case where we
    # have tons of groups
    matplotlib.rcParams['xtick.labelsize'] = '3'
    plt.figure()
    plt.title(title)
    df.plot(kind='box', rot=90)
    plt.ylabel('Time (sec.)')
    plt.tight_layout()
    plt.savefig(CONF.output, dpi=900)
예제 #2
0
def generate_series():
    session = api.get_session()
    if CONF.start_date:
        start_date = datetime.datetime.strptime(CONF.start_date, '%Y-%m-%d')
    else:
        start_date = None
    if CONF.stop_date:
        stop_date = datetime.datetime.strptime(CONF.stop_date, '%Y-%m-%d')
    else:
        stop_date = None
    run_times = api.get_run_times_grouped_by_run_metadata_key(
        CONF.command.metadata_key,
        start_date=start_date,
        stop_date=stop_date,
        session=session)
    df = pd.DataFrame(
        dict([(k, pd.Series(v)) for k, v in run_times.iteritems()]))
    if not CONF.title:
        title = "Run aggregate run time grouped by metadata"
    else:
        title = CONF.title
    # NOTE(mtreinish): Decrease label font size for the worst case where we
    # have tons of groups
    matplotlib.rcParams['xtick.labelsize'] = '3'
    plt.figure()
    plt.title(title)
    df.plot(kind='box', rot=90)
    plt.ylabel('Time (sec.)')
    plt.tight_layout()
    plt.savefig(CONF.output, dpi=900)
예제 #3
0
def generate_series():
    session = api.get_session()
    start_date = None
    stop_date = None
    if CONF.start_date:
        start_date = date_parser.parse(CONF.start_date)
    if CONF.stop_date:
        stop_date = date_parser.parse(CONF.stop_date)
    ci_time = {}
    ci_time_temp = {}
    project_run_times = api.get_run_times_grouped_by_run_metadata_key(
        CONF.command.key, start_date=start_date, stop_date=stop_date,
        session=session)
    for project in project_run_times:
        ci_time_temp[project] = numpy.sum(project_run_times[project])
    sorted_times = sorted(ci_time_temp.items(), key=operator.itemgetter(1),
                          reverse=True)
    if CONF.command.num:
        sorted_times = sorted_times[:CONF.command.num]
    for project, time in sorted_times:
        ci_time[project] = time

    title = CONF.title or 'Aggregate Run Time grouped by %s' % CONF.command.key
    session.close()
    plt.bar(range(len(ci_time)), ci_time.values(), align='center', width=.1)
    plt.xticks(range(len(ci_time)), ci_time.keys(), rotation=90, fontsize=8)
    plt.title(title)
    plt.tight_layout()
    plt.savefig(CONF.output, dpi=CONF.dpi)
예제 #4
0
 def test_get_run_times_grouped_by_run_metadata_key(self):
     run_a = api.create_run(run_time=2.2, passes=2)
     run_b = api.create_run(run_time=3.5, passes=3)
     api.add_run_metadata({'key': 'value_a'}, run_a.id)
     api.add_run_metadata({'key': 'value_b'}, run_b.id)
     res = api.get_run_times_grouped_by_run_metadata_key('key')
     expected_res = {'value_a': [2.2], 'value_b': [3.5]}
     self.assertEqual(expected_res, res)
예제 #5
0
 def test_get_run_times_grouped_by_run_metadata_key(self):
     run_a = api.create_run(run_time=2.2, passes=2)
     run_b = api.create_run(run_time=3.5, passes=3)
     api.add_run_metadata({'key': 'value_a'}, run_a.id)
     api.add_run_metadata({'key': 'value_b'}, run_b.id)
     res = api.get_run_times_grouped_by_run_metadata_key('key')
     expected_res = {'value_a': [2.2], 'value_b': [3.5]}
     self.assertEqual(expected_res, res)