Example #1
0
def gb_status(q, mode='runs'):
    #bystatus
    if GROUPING_MODE == 'python':
        if mode == 'runs':
            gb_status_rows = dbs(q).select(sr.status,
                                           orderby=sr.status,
                                           **ANALYZE_CACHE_KWARGS)
            gb_status_series = defaultdict(int)
            for row in gb_status_rows:
                status = row.status
                gb_status_series[status] += 1
        else:
            gb_status_series = defaultdict(int)
            gb_status_rows = dbs(q).select(st.status, st.times_run,
                                           **ANALYZE_CACHE_KWARGS)
            for row in gb_status_rows:
                gb_status_series[row.status] += row.times_run
    else:
        if mode == 'runs':
            status_ = sr.status
            count_ = sr.id.count()
            gb_status_rows = dbs(q).select(count_,
                                           status_,
                                           groupby=status_,
                                           orderby=status_,
                                           **ANALYZE_CACHE_KWARGS)
            gb_status_series = defaultdict(int)
            for row in gb_status_rows:
                status = row.scheduler_run.status
                howmany = row[count_]
                gb_status_series[status] += howmany
        else:
            status_ = st.status
            count_ = st.times_run.sum()
            gb_status_rows = dbs(q).select(count_,
                                           status_,
                                           groupby=status_,
                                           orderby=status_,
                                           **ANALYZE_CACHE_KWARGS)
            gb_status_series = defaultdict(int)
            for row in gb_status_rows:
                status = row.scheduler_task.status
                howmany = row[count_]
                gb_status_series[status] += howmany

    jgb_status_series = []
    for k, v in gb_status_series.items():
        jgb_status_series.append({
            'label': k,
            'color': graph_colors_task_status(k),
            'data': (k, v)
        })

    return gb_status_rows, jgb_status_series
Example #2
0
def gb_duration(q):
    #byduration
    count_ = sr.id.count()
    status_ = sr.status
    duration_g = sr.stop_time.epoch() - sr.start_time.epoch()

    if GROUPING_MODE == 'python':
        gb_duration_rows = dbs(q).select(status_,
                                         sr.start_time,
                                         sr.stop_time,
                                         orderby=status_ | duration_g)
        gb_duration_series = {}
        for row in gb_duration_rows:
            status = row.status
            duration_ = row.stop_time - row.start_time
            duration = (duration_.seconds + duration_.days * 24 * 3600)
            if status not in gb_duration_series:
                gb_duration_series[status] = defaultdict(int, {duration: 1})
            else:
                gb_duration_series[status][duration] += 1
    else:
        gb_duration_rows = dbs(q).select(count_,
                                         status_,
                                         duration_g,
                                         groupby=status_ | duration_g,
                                         orderby=status_ | duration_g)
        #convert to duration series
        gb_duration_series = {}
        for row in gb_duration_rows:
            status = row.scheduler_run.status
            duration = row[duration_g]
            howmany = row[count_]
            if status not in gb_duration_series:
                gb_duration_series[status] = {duration: howmany}
            else:
                if duration not in gb_duration_series[status]:
                    gb_duration_series[status][duration] = howmany

    jgb_duration_series = []
    for k, v in gb_duration_series.items():
        jgb_duration_series.append({
            'label': k,
            'data': [[kk, vv] for kk, vv in v.items()],
            'color': graph_colors_task_status(k)
        })

    return gb_duration_rows, jgb_duration_series
Example #3
0
def gb_status(q, mode='runs'):
    #bystatus
    if GROUPING_MODE == 'python':
        if mode == 'runs':
            gb_status_rows = dbs(q).select(sr.status, orderby=sr.status, **ANALYZE_CACHE_KWARGS)
            gb_status_series = defaultdict(int)
            for row in gb_status_rows:
                status = row.status
                gb_status_series[status] += 1
        else:
            gb_status_series = defaultdict(int)
            gb_status_rows = dbs(q).select(st.status, st.times_run, **ANALYZE_CACHE_KWARGS)
            for row in gb_status_rows:
                gb_status_series[row.status] += row.times_run
    else:
        if mode == 'runs':
            status_ = sr.status
            count_ = sr.id.count()
            gb_status_rows = dbs(q).select(count_, status_, groupby=status_, orderby=status_, **ANALYZE_CACHE_KWARGS)
            gb_status_series = defaultdict(int)
            for row in gb_status_rows:
                status = row.scheduler_run.status
                howmany = row[count_]
                gb_status_series[status] += howmany
        else:
            status_ = st.status
            count_ = st.times_run.sum()
            gb_status_rows = dbs(q).select(count_, status_, groupby=status_, orderby=status_, **ANALYZE_CACHE_KWARGS)
            gb_status_series = defaultdict(int)
            for row in gb_status_rows:
                status = row.scheduler_task.status
                howmany = row[count_]
                gb_status_series[status] += howmany


    jgb_status_series = []
    for k,v in gb_status_series.items():
        jgb_status_series.append(
            {'label' : k, 'color' : graph_colors_task_status(k), 'data' : (k,v)}
        )

    return gb_status_rows, jgb_status_series
Example #4
0
def gb_duration(q):
    #byduration
    count_ = sr.id.count()
    status_ = sr.status
    duration_g = sr.stop_time.epoch() - sr.start_time.epoch()

    if GROUPING_MODE == 'python':
        gb_duration_rows = dbs(q).select(status_, sr.start_time, sr.stop_time, orderby=status_|duration_g)
        gb_duration_series = {}
        for row in gb_duration_rows:
            status = row.status
            duration_ = row.stop_time - row.start_time
            duration = (duration_.seconds + duration_.days * 24 * 3600)
            if status not in gb_duration_series:
                gb_duration_series[status] = defaultdict(int, {duration : 1})
            else:
                gb_duration_series[status][duration] += 1
    else:
        gb_duration_rows = dbs(q).select(count_, status_, duration_g, groupby=status_|duration_g, orderby=status_|duration_g)
        #convert to duration series
        gb_duration_series = {}
        for row in gb_duration_rows:
            status = row.scheduler_run.status
            duration = row[duration_g]
            howmany = row[count_]
            if status not in gb_duration_series:
                gb_duration_series[status] = {duration : howmany}
            else:
                if duration not in gb_duration_series[status]:
                    gb_duration_series[status][duration] = howmany

    jgb_duration_series = []
    for k,v in gb_duration_series.items():
        jgb_duration_series.append(
                {'label': k, 'data' : [[kk,vv] for kk,vv in v.items()], 'color' : graph_colors_task_status(k)}
            )

    return gb_duration_rows, jgb_duration_series
Example #5
0
def byday(q, day, mode):
    #by period
    if GROUPING_MODE == 'python':
        if mode == 'runs':
            gb_whend_rows = dbs(q).select(sr.status, sr.start_time, orderby=sr.status|sr.start_time, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.status
                refdate = row.start_time.strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = defaultdict(int, {refdate : 1})
                else:
                    gb_whend_series[status][refdate] += 1
        else:
            gb_whend_rows = dbs(q).select(st.times_run, st.status, st.last_run_time, orderby=st.status|st.last_run_time, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.status
                refdate = row.last_run_time.strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = defaultdict(int, {refdate : row.times_run})
                else:
                    gb_whend_series[status][refdate] += row.times_run
    else:
        if mode == 'runs':
            count_ = sr.id.count()
            status_ = sr.status
            d = sr.start_time.hour()|sr.start_time.minutes()
            gb_whend_rows = dbs(q).select(count_, status_, sr.start_time.hour(), sr.start_time.minutes(), groupby=status_|d, orderby=status_|d, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.scheduler_run.status
                howmany = row[count_]
                refdate = day.year, day.month, day.day, row[sr.start_time.hour()], row[sr.start_time.minutes()], 0
                refdate = datetime.datetime(*refdate).strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = {refdate : howmany}
                else:
                    gb_whend_series[status][refdate] = howmany
        else:
            count_ = st.times_run.sum()
            status_ = st.status
            d = st.last_run_time.hour()|st.last_run_time.minutes()
            gb_whend_rows = dbs(q).select(count_, status_, st.last_run_time.hour(), st.last_run_time.minutes(), groupby=status_|d, orderby=status_|d, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.scheduler_task.status
                howmany = row[count_]
                refdate = day.year, day.month, day.day, row[st.last_run_time.hour()], row[st.last_run_time.minutes()], 0
                refdate = datetime.datetime(*refdate).strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = {refdate : howmany}
                else:
                    gb_whend_series[status][refdate] = howmany

    jgb_whend_series = []
    for k, v in gb_whend_series.items():
        jgb_whend_series.append(
            {'label': k, 'data' : [[kk,vv] for kk,vv in v.items()], 'color' : graph_colors_task_status(k)}
        )

    return gb_whend_rows, jgb_whend_series
Example #6
0
def byday(q, day, mode):
    #by period
    if GROUPING_MODE == 'python':
        if mode == 'runs':
            gb_whend_rows = dbs(q).select(sr.status, sr.start_time, orderby=sr.status|sr.start_time, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.status
                refdate = row.start_time.strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = defaultdict(int, {refdate : 1})
                else:
                    gb_whend_series[status][refdate] += 1
        else:
            gb_whend_rows = dbs(q).select(st.times_run, st.status, st.last_run_time, orderby=st.status|st.last_run_time, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.status
                refdate = row.last_run_time.strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = defaultdict(int, {refdate : row.times_run})
                else:
                    gb_whend_series[status][refdate] += row.times_run
    else:
        if mode == 'runs':
            count_ = sr.id.count()
            status_ = sr.status
            d = sr.start_time.hour()|sr.start_time.minutes()
            gb_whend_rows = dbs(q).select(count_, status_, sr.start_time.hour(), sr.start_time.minutes(), groupby=status_|d, orderby=status_|d, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.scheduler_run.status
                howmany = row[count_]
                refdate = day.year, day.month, day.day, row[sr.start_time.hour()], row[sr.start_time.minutes()], 0
                refdate = datetime.datetime(*refdate).strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = {refdate : howmany}
                else:
                    gb_whend_series[status][refdate] = howmany
        else:
            count_ = st.times_run.sum()
            status_ = st.status
            d = st.last_run_time.hour()|st.last_run_time.minutes()
            gb_whend_rows = dbs(q).select(count_, status_, st.last_run_time.hour(), st.last_run_time.minutes(), groupby=status_|d, orderby=status_|d, **ANALYZE_CACHE_KWARGS)
            gb_whend_series = {}
            for row in gb_whend_rows:
                status = row.scheduler_task.status
                howmany = row[count_]
                refdate = day.year, day.month, day.day, row[st.last_run_time.hour()], row[st.last_run_time.minutes()], 0
                refdate = datetime.datetime(*refdate).strftime('%Y-%m-%d %H:%M')
                if status not in gb_whend_series:
                    gb_whend_series[status] = {refdate : howmany}
                else:
                    gb_whend_series[status][refdate] = howmany

    jgb_whend_series = []
    for k, v in gb_whend_series.items():
        jgb_whend_series.append(
            {'label': k, 'data' : [[kk,vv] for kk,vv in v.items()], 'color' : graph_colors_task_status(k)}
        )

    return gb_whend_rows, jgb_whend_series