Пример #1
0
def get_satisfactions():
    print("Starting Satisfactions ThreadPoolExecutor")
    futures = []
    start_date = request.args.get('start_date')
    end_date = request.args.get('end_date')
    start_date, end_date = send_dates(start_date, end_date)

    query ="*%3A*&wt=json&fl=type&fq=date%3A%5B"+start_date+"%20TO%20"+end_date+"%5D&indent=true&facet=true&stats=true&stats.field=status&facet.pivot" \
           "=userID,status "

    result = SolrURLConnection.execute_facet_query(query)

    print("Satisfactions complete")
    director = Director()
    builder = ConcreteDashboardBuilder()
    director.builder = builder
    # print(result[0])

    director.build_NPS_score(
        result['facet_counts']['facet_pivot']['userID,status'],
        ['OK', 'UF', 'IF'])
    nps_scores = builder.customerData.getNPSScore()
    month_scores = []
    for nps1 in nps_scores:
        for nps in nps1:
            if nps in 'score':
                month_scores.append(nps1[nps])

    return jsonify(
        {'satisfactions': calculate_satisfaction_score(month_scores)})
Пример #2
0
def get_scores():
    facet_query = [
        "*%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"
    ]
    agents = 4
    chunksize = 3
    with Pool(processes=agents) as pool:
        result = pool.map(execute_solr_url_query_by_facet, facet_query,
                          chunksize)

    # Output the result
    print('Result:  ' + str(result[0]))

    director = Director()
    builder = ConcreteDashboardBuilder()
    director.builder = builder

    director.build_NPS_score(
        result[0]['facet_counts']['facet_pivot']['userID,status'],
        ['OK', 'UF', 'IF'])
    director.build_activity_by_action(
        result[1]['facet_counts']['facet_pivot']['type'], ['type'])
    director.build_customer_experience(
        result[2]['facet_counts']['facet_pivot'], 'current')
    director.build_customer_experience(
        result[3]['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({
        '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)
    })
Пример #3
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()})
Пример #4
0
def get_response():
    print("Starting Response ThreadPoolExecutor")
    futures = []
    start_date = request.args.get('start_date')
    end_date = request.args.get('end_date')
    start_date, end_date = send_dates(start_date, end_date)
    query = "*%3A*&fl=date%2C%20response_time&fq=date%3A%5B" + start_date + "%20TO%20" + end_date + "%5D&sort=date%20asc"
    print(query)

    result = SolrURLConnection.execute_facet_query(query)

    print("Response complete")
    director = Director()
    builder = ConcreteDashboardBuilder()
    director.builder = builder
    # print(result[0])
    director.build_response(result['response']["docs"], ['mean'])

    return jsonify({'response': builder.customerData.getResponseData()})
Пример #5
0
def get_customerExperience():
    print("Starting 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(range_gap)
    query = [
        "*%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=" + start_date +
        "&f.date.facet.range.end=" + end_date +
        "&f.date.facet.range.gap=%2B1" + range_gap +
        "&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=" + start_date +
        "&f.date.facet.range.end=" + end_date +
        "&f.date.facet.range.gap=%2B1" + range_gap +
        "&facet.pivot={!range=r1}status"
    ]

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

    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

    director.build_customer_experience(
        result[0]['facet_counts']['facet_pivot'], 'current')
    director.build_customer_experience(
        result[1]['facet_counts']['facet_pivot'], 'previous')
    customer_experience = builder.customerData.getCustomerExperience()

    return jsonify({'experience': customer_experience})
Пример #6
0
def get_activityByAction():
    print("Starting ActivityByAction ThreadPoolExecutor")
    futures = []
    start_date = request.args.get('start_date')
    end_date = request.args.get('end_date')
    start_date, end_date = send_dates(start_date, end_date)

    query ="*%3A*&wt=json&fl=type&fq=date%3A%5B"+start_date+"%20TO%20"+end_date+"%5D&indent=true&facet=true&stats=true" \
           "&stats.field=status&facet.pivot=type "

    result = SolrURLConnection.execute_facet_query(query)

    print("ActivityByAction complete")
    director = Director()
    builder = ConcreteDashboardBuilder()
    director.builder = builder
    director.build_activity_by_action(
        result['facet_counts']['facet_pivot']['type'], ['type'])
    activityByAction = builder.customerData.getActivityByApi()

    return jsonify(
        {'activityByAction': user_activity_by_apy(activityByAction)})
Пример #7
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)
    })