コード例 #1
0
def get_reliability():
    print("Starting Reliability ThreadPoolExecutor")
    futures = []
    start_date = request.args.get('start_date')
    end_date = request.args.get('end_date')

    start_date, end_date, range_gap = send_dates_with_range(
        start_date, end_date)
    print(start_date)
    print(end_date)
    query = [
        "status%3AUF&wt=json&fl=type&indent=true&facet=true&facet.range=date"
        "&f.date.facet.range.start=" + start_date +
        "&f.date.facet.range.end=" + end_date +
        "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date",
        "status%3AIF&wt=json&fl=type&indent=true&facet=true&facet.range=date"
        "&f.date.facet.range.start=" + start_date +
        "&f.date.facet.range.end=" + end_date +
        "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date",
        "status%3AOK&wt=json&fl=type&indent=true&facet=true&facet.range=date"
        "&f.date.facet.range.start=" + start_date +
        "&f.date.facet.range.end=" + end_date +
        "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date"
    ]

    # Run this with a pool of 5 agents having a chunksize of 3 until finished
    agents = 3
    chunksize = 3

    with Pool(processes=agents) as pool:
        result = pool.map(execute_solr_url_query_by_facet, query, chunksize)

    print("Reliability complete")
    director = Director()
    builder = ConcreteDashboardBuilder()
    director.builder = builder
    # print(result[0])
    director.build_UF(
        result[0]['facet_counts']['facet_ranges']['date']['counts'],
        ['OK', 'UF', 'IF'])
    director.build_IF(
        result[1]['facet_counts']['facet_ranges']['date']['counts'],
        ['OK', 'UF', 'IF'])
    director.build_OK(
        result[2]['facet_counts']['facet_ranges']['date']['counts'],
        ['OK', 'UF', 'IF'])

    return jsonify({'reliability': builder.customerData.getReliabilityData()})
コード例 #2
0
def get_tasks():
    print("Starting ThreadPoolExecutor")
    futures = []

    query = [
        "status%3AUF&wt=json&fl=type&indent=true&facet=true&facet.range=date"
        "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z"
        "&f.date.facet.range.gap=%2b1DAY&facet.range=date",
        "status%3AIF&wt=json&fl=type&indent=true&facet=true&facet.range=date"
        "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z"
        "&f.date.facet.range.gap=%2b1DAY&facet.range=date",
        "status%3AOK&wt=json&fl=type&indent=true&facet=true&facet.range=date"
        "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z"
        "&f.date.facet.range.gap=%2b1DAY&facet.range=date",
        "*%3A*&fl=date%2Cresponse_time&sort=date%20asc",
        "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status&facet.pivot"
        "=userID,status ",
        "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true"
        "&stats.field=status&facet.pivot=type ",
        "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status"
        "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-11-01T23:59:59Z"
        "&f.date.facet.range.end=2020-12-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY"
        "&facet.pivot={!range=r1}status",
        "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status"
        "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-10-01T23:59:59Z"
        "&f.date.facet.range.end=2020-11-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY"
        "&facet.pivot={!range=r1}status"
    ]

    # Run this with a pool of 5 agents having a chunksize of 3 until finished
    agents = 8
    chunksize = 8

    with Pool(processes=agents) as pool:
        result = pool.map(execute_solr_url_query_by_facet, query, chunksize)

    print("All tasks complete")
    director = Director()
    builder = ConcreteDashboardBuilder()
    director.builder = builder
    # print(result[0])
    director.build_UF(
        result[0]['facet_counts']['facet_ranges']['date']['counts'],
        ['OK', 'UF', 'IF'])
    director.build_IF(
        result[1]['facet_counts']['facet_ranges']['date']['counts'],
        ['OK', 'UF', 'IF'])
    director.build_OK(
        result[2]['facet_counts']['facet_ranges']['date']['counts'],
        ['OK', 'UF', 'IF'])
    director.build_response(result[3]['response']["docs"], ['mean'])
    director.build_NPS_score(
        result[4]['facet_counts']['facet_pivot']['userID,status'],
        ['OK', 'UF', 'IF'])
    director.build_activity_by_action(
        result[5]['facet_counts']['facet_pivot']['type'], ['type'])
    director.build_customer_experience(
        result[6]['facet_counts']['facet_pivot'], 'current')
    director.build_customer_experience(
        result[7]['facet_counts']['facet_pivot'], 'previous')
    print("All tasks complete")
    nps_scores = builder.customerData.getNPSScore()
    customer_experience = builder.customerData.getCustomerExperience()
    activityByAction = builder.customerData.getActivityByApi()
    month_scores = []
    for nps1 in nps_scores:
        for nps in nps1:
            if nps in 'score':
                month_scores.append(nps1[nps])

    return jsonify({
        'reliability': builder.customerData.getReliabilityData(),
        'availability': builder.customerData.getAvailabilityData(),
        'response': builder.customerData.getResponseData(),
        'satisfactions': calculate_satisfaction_score(month_scores),
        'activityByAction': user_activity_by_apy(activityByAction),
        'experience': customer_experience,
        'npsScore': calculate_nps(month_scores),
        'monthScore': calculate_month_score(month_scores)
    })