Пример #1
0
def master_pattern(request):
    _, _, master_release_names, master_release_dates = download.download_benchmark_csv(
        40)

    none_mtls_base_p90_pattern_master = get_telemetry_mode_y_series(
        master_release_names, master_release_dates, '_none_mtls_base', 'p90')
    none_mtls_both_p90_pattern_master = get_telemetry_mode_y_series(
        master_release_names, master_release_dates, '_none_mtls_both', 'p90')
    v2_sd_full_nullvm_both_p90_pattern_master = get_telemetry_mode_y_series(
        master_release_names, master_release_dates, '_v2-sd-full-nullvm_both',
        'p90')

    none_mtls_base_p99_pattern_master = get_telemetry_mode_y_series(
        master_release_names, master_release_dates, '_none_mtls_base', 'p99')
    none_mtls_both_p99_pattern_master = get_telemetry_mode_y_series(
        master_release_names, master_release_dates, '_none_mtls_both', 'p99')
    v2_sd_full_nullvm_both_p99_pattern_master = get_telemetry_mode_y_series(
        master_release_names, master_release_dates, '_v2-sd-full-nullvm_both',
        'p99')

    context = {
        'none_mtls_base_p90_pattern_master':
        none_mtls_base_p90_pattern_master,
        'none_mtls_both_p90_pattern_master':
        none_mtls_both_p90_pattern_master,
        'v2_sd_full_nullvm_both_p90_pattern_master':
        v2_sd_full_nullvm_both_p90_pattern_master,
        'none_mtls_base_p99_pattern_master':
        none_mtls_base_p99_pattern_master,
        'none_mtls_both_p99_pattern_master':
        none_mtls_both_p99_pattern_master,
        'v2_sd_full_nullvm_both_p99_pattern_master':
        v2_sd_full_nullvm_both_p99_pattern_master,
    }
    return render(request, "master_pattern.html", context=context)
Пример #2
0
def cur_pattern(request):
    cur_release_names, cur_release_dates, _, _ = download.download_benchmark_csv(
        40)

    none_mtls_base_p90_pattern = get_telemetry_mode_y_series(
        cur_release_names, cur_release_dates, '_none_mtls_base', 'p90')
    none_mtls_both_p90_pattern = get_telemetry_mode_y_series(
        cur_release_names, cur_release_dates, '_none_mtls_both', 'p90')
    v2_sd_full_nullvm_both_p90_pattern = get_telemetry_mode_y_series(
        cur_release_names, cur_release_dates, '_v2-sd-full-nullvm_both', 'p90')

    none_mtls_base_p99_pattern = get_telemetry_mode_y_series(
        cur_release_names, cur_release_dates, '_none_mtls_base', 'p99')
    none_mtls_both_p99_pattern = get_telemetry_mode_y_series(
        cur_release_names, cur_release_dates, '_none_mtls_both', 'p99')
    v2_sd_full_nullvm_both_p99_pattern = get_telemetry_mode_y_series(
        cur_release_names, cur_release_dates, '_v2-sd-full-nullvm_both', 'p99')

    context = {
        'current_release': current_release,
        'none_mtls_base_p90_pattern': none_mtls_base_p90_pattern,
        'none_mtls_both_p90_pattern': none_mtls_both_p90_pattern,
        'v2_sd_full_nullvm_both_p90_pattern':
        v2_sd_full_nullvm_both_p90_pattern,
        'none_mtls_base_p99_pattern': none_mtls_base_p99_pattern,
        'none_mtls_both_p99_pattern': none_mtls_both_p99_pattern,
        'v2_sd_full_nullvm_both_p99_pattern':
        v2_sd_full_nullvm_both_p99_pattern,
    }
    return render(request, "cur_pattern.html", context=context)
Пример #3
0
def cur_regression(request):
    cur_href_links, _, cur_release_dates, _, _, _ = download.download_benchmark_csv(
        60)

    latency_none_mtls_base_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_none_mtls_baseline', 'p90')
    latency_none_mtls_both_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_none_mtls_both', 'p90')
    latency_none_plaintext_both_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_none_plaintext_both', 'p90')
    latency_v2_stats_nullvm_both_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-stats-nullvm_both', 'p90')
    latency_v2_stats_wasm_both_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-stats-wasm_both', 'p90')
    latency_v2_sd_nologging_nullvm_both_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-sd-nologging-nullvm_both',
        'p90')
    latency_v2_sd_full_nullvm_both_p90 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-sd-full-nullvm_both', 'p90')

    latency_none_mtls_base_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_none_mtls_baseline', 'p99')
    latency_none_mtls_both_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_none_mtls_both', 'p99')
    latency_none_plaintext_both_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_none_plaintext_both', 'p99')
    latency_v2_stats_nullvm_both_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-stats-nullvm_both', 'p99')
    latency_v2_stats_wasm_both_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-stats-wasm_both', 'p99')
    latency_v2_sd_nologging_nullvm_both_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-sd-nologging-nullvm_both',
        'p99')
    latency_v2_sd_full_nullvm_both_p99 = get_telemetry_mode_y_series(
        cur_href_links, cur_release_dates, '_v2-sd-full-nullvm_both', 'p99')

    context = {
        'current_release': current_release,
        'latency_none_mtls_base_p90': latency_none_mtls_base_p90,
        'latency_none_mtls_both_p90': latency_none_mtls_both_p90,
        'latency_none_plaintext_both_p90': latency_none_plaintext_both_p90,
        'latency_v2_stats_nullvm_both_p90': latency_v2_stats_nullvm_both_p90,
        'latency_v2_stats_wasm_both_p90': latency_v2_stats_wasm_both_p90,
        'latency_v2_sd_nologging_nullvm_both_p90':
        latency_v2_sd_nologging_nullvm_both_p90,
        'latency_v2_sd_full_nullvm_both_p90':
        latency_v2_sd_full_nullvm_both_p90,
        'latency_none_mtls_base_p99': latency_none_mtls_base_p99,
        'latency_none_mtls_both_p99': latency_none_mtls_both_p99,
        'latency_none_plaintext_both_p99': latency_none_plaintext_both_p99,
        'latency_v2_stats_nullvm_both_p99': latency_v2_stats_nullvm_both_p99,
        'latency_v2_stats_wasm_both_p99': latency_v2_stats_wasm_both_p99,
        'latency_v2_sd_nologging_nullvm_both_p99':
        latency_v2_sd_nologging_nullvm_both_p99,
        'latency_v2_sd_full_nullvm_both_p99':
        latency_v2_sd_full_nullvm_both_p99,
    }
    return render(request, "cur_regression.html", context=context)
Пример #4
0
def latency_vs_conn(request, uploaded_csv_url=None):
    if uploaded_csv_url is not None:
        uploaded_csv_path = cwd + uploaded_csv_url
        df = pd.read_csv(uploaded_csv_path)
        context = get_lantency_vs_conn_context(df)
        os.remove(uploaded_csv_path)
        return context
    else:
        cur_release_names, cur_release_dates, master_release_names, master_release_dates = download.download_benchmark_csv(20)

        if request.method == "POST" and 'current_release_name' in request.POST:
            cur_selected_release.append(request.POST['current_release_name'])

        df = pd.read_csv(perf_data_path + "cur_temp.csv")

        if cur_release_names is not None and len(cur_release_names) > 0:
            df = pd.read_csv(perf_data_path + cur_release_names[0] + ".csv")
        # Parse data for the current release
        if len(cur_selected_release) > 1:
            cur_selected_release.pop(0)
        if len(cur_selected_release) > 0:
            df = pd.read_csv(perf_data_path + cur_selected_release[0] + ".csv")

        release_context = get_lantency_vs_conn_context(df)

        # Parse data for the master
        if request.method == "POST" and 'master_release_name' in request.POST:
            master_selected_release.append(request.POST['master_release_name'])

        df = pd.read_csv(perf_data_path + "master_temp.csv")

        if master_release_names is not None and len(master_release_names) > 0:
            df = pd.read_csv(perf_data_path + master_release_names[0] + ".csv")
        # Parse data for the current release
        if len(master_selected_release) > 1:
            master_selected_release.pop(0)
        if len(master_selected_release) > 0:
            df = pd.read_csv(perf_data_path + master_selected_release[0] + ".csv")

        latency_mixer_base_p50_master = get_latency_vs_conn_y_series(df, '_mixer_base', 'p50')
        latency_mixer_serveronly_p50_master = get_latency_vs_conn_y_series(df, '_mixer_serveronly', 'p50')
        latency_mixer_both_p50_master = get_latency_vs_conn_y_series(df, '_mixer_both', 'p50')
        latency_none_serveronly_p50_master = get_latency_vs_conn_y_series(df, '_none_serveronly', 'p50')
        latency_none_both_p50_master = get_latency_vs_conn_y_series(df, '_none_both', 'p50')
        latency_none_plaintext_both_p50_master = get_latency_vs_conn_y_series(df, '_none_plaintext_both', 'p50')
        latency_v2_serveronly_p50_master = get_latency_vs_conn_y_series(df, 'nullvm_serveronly', 'p50')
        latency_v2_both_p50_master = get_latency_vs_conn_y_series(df, 'nullvm_both', 'p50')

        latency_mixer_base_p90_master = get_latency_vs_conn_y_series(df, '_mixer_base', 'p90')
        latency_mixer_serveronly_p90_master = get_latency_vs_conn_y_series(df, '_mixer_serveronly', 'p90')
        latency_mixer_both_p90_master = get_latency_vs_conn_y_series(df, '_mixer_both', 'p90')
        latency_none_serveronly_p90_master = get_latency_vs_conn_y_series(df, '_none_serveronly', 'p90')
        latency_none_both_p90_master = get_latency_vs_conn_y_series(df, '_none_both', 'p90')
        latency_none_plaintext_both_p90_master = get_latency_vs_conn_y_series(df, '_none_plaintext_both', 'p90')
        latency_v2_serveronly_p90_master = get_latency_vs_conn_y_series(df, 'nullvm_serveronly', 'p90')
        latency_v2_both_p90_master = get_latency_vs_conn_y_series(df, 'nullvm_both', 'p90')

        latency_mixer_base_p99_master = get_latency_vs_conn_y_series(df, '_mixer_base', 'p99')
        latency_mixer_serveronly_p99_master = get_latency_vs_conn_y_series(df, '_mixer_serveronly', 'p99')
        latency_mixer_both_p99_master = get_latency_vs_conn_y_series(df, '_mixer_both', 'p99')
        latency_none_serveronly_p99_master = get_latency_vs_conn_y_series(df, '_none_serveronly', 'p99')
        latency_none_both_p99_master = get_latency_vs_conn_y_series(df, '_none_both', 'p99')
        latency_none_plaintext_both_p99_master = get_latency_vs_conn_y_series(df, '_none_plaintext_both', 'p99')
        latency_v2_serveronly_p99_master = get_latency_vs_conn_y_series(df, 'nullvm_serveronly', 'p99')
        latency_v2_both_p99_master = get_latency_vs_conn_y_series(df, 'nullvm_both', 'p99')

        other_context = {'current_release': current_release,
                         'cur_selected_release': cur_selected_release,
                         'master_selected_release':  master_selected_release,
                         'cur_release_names': cur_release_names,
                         'master_release_names': master_release_names,
                         }

        master_context = {'latency_mixer_base_p50_master': latency_mixer_base_p50_master,
                          'latency_mixer_serveronly_p50_master': latency_mixer_serveronly_p50_master,
                          'latency_mixer_both_p50_master': latency_mixer_both_p50_master,
                          'latency_none_serveronly_p50_master': latency_none_serveronly_p50_master,
                          'latency_none_both_p50_master': latency_none_both_p50_master,
                          'latency_none_plaintext_both_p50_master': latency_none_plaintext_both_p50_master,
                          'latency_v2_serveronly_p50_master': latency_v2_serveronly_p50_master,
                          'latency_v2_both_p50_master': latency_v2_both_p50_master,
                          'latency_mixer_base_p90_master': latency_mixer_base_p90_master,
                          'latency_mixer_serveronly_p90_master': latency_mixer_serveronly_p90_master,
                          'latency_mixer_both_p90_master': latency_mixer_both_p90_master,
                          'latency_none_serveronly_p90_master': latency_none_serveronly_p90_master,
                          'latency_none_both_p90_master': latency_none_both_p90_master,
                          'latency_none_plaintext_both_p90_master': latency_none_plaintext_both_p90_master,
                          'latency_v2_serveronly_p90_master': latency_v2_serveronly_p90_master,
                          'latency_v2_both_p90_master': latency_v2_both_p90_master,
                          'latency_mixer_base_p99_master': latency_mixer_base_p99_master,
                          'latency_mixer_serveronly_p99_master': latency_mixer_serveronly_p99_master,
                          'latency_mixer_both_p99_master': latency_mixer_both_p99_master,
                          'latency_none_serveronly_p99_master': latency_none_serveronly_p99_master,
                          'latency_none_both_p99_master': latency_none_both_p99_master,
                          'latency_none_plaintext_both_p99_master': latency_none_plaintext_both_p99_master,
                          'latency_v2_serveronly_p99_master': latency_v2_serveronly_p99_master,
                          'latency_v2_both_p99_master': latency_v2_both_p99_master,
                          }

        context = reduce(lambda x, y: dict(x, **y), (other_context, release_context, master_context))

        return render(request, "latency_vs_conn.html", context=context)
Пример #5
0
def latency(request):
    cur_release_names, cur_release_dates, master_release_names, master_release_dates = download.download_benchmark_csv(
        20)

    if request.method == "POST" and 'current_release_name' in request.POST:
        cur_selected_release.append(request.POST['current_release_name'])
    df = pd.read_csv(perf_data_path + cur_release_names[0] + ".csv")
    # Parse data for the current release
    if len(cur_selected_release) > 1:
        cur_selected_release.pop(0)
    if len(cur_selected_release) > 0:
        df = pd.read_csv(perf_data_path + cur_selected_release[0] + ".csv")

    latency_mixer_base_p50 = get_latency_y_series(df, '_mixer_base', 'p50')
    latency_mixer_serveronly_p50 = get_latency_y_series(
        df, '_mixer_serveronly', 'p50')
    latency_mixer_both_p50 = get_latency_y_series(df, '_mixer_both', 'p50')
    latency_nomixer_serveronly_p50 = get_latency_y_series(
        df, '_nomixer_serveronly', 'p50')
    latency_nomixer_both_p50 = get_latency_y_series(df, '_nomixer_both', 'p50')
    latency_v2_serveronly_p50 = get_latency_y_series(df, 'nullvm_serveronly',
                                                     'p50')
    latency_v2_both_p50 = get_latency_y_series(df, 'nullvm_both', 'p50')

    latency_mixer_base_p90 = get_latency_y_series(df, '_mixer_base', 'p90')
    latency_mixer_serveronly_p90 = get_latency_y_series(
        df, '_mixer_serveronly', 'p90')
    latency_mixer_both_p90 = get_latency_y_series(df, '_mixer_both', 'p90')
    latency_nomixer_serveronly_p90 = get_latency_y_series(
        df, '_nomixer_serveronly', 'p90')
    latency_nomixer_both_p90 = get_latency_y_series(df, '_nomixer_both', 'p90')
    latency_v2_serveronly_p90 = get_latency_y_series(df, 'nullvm_serveronly',
                                                     'p90')
    latency_v2_both_p90 = get_latency_y_series(df, 'nullvm_both', 'p90')

    latency_mixer_base_p99 = get_latency_y_series(df, '_mixer_base', 'p99')
    latency_mixer_serveronly_p99 = get_latency_y_series(
        df, '_mixer_serveronly', 'p99')
    latency_mixer_both_p99 = get_latency_y_series(df, '_mixer_both', 'p99')
    latency_nomixer_serveronly_p99 = get_latency_y_series(
        df, '_nomixer_serveronly', 'p99')
    latency_nomixer_both_p99 = get_latency_y_series(df, '_nomixer_both', 'p99')
    latency_v2_serveronly_p99 = get_latency_y_series(df, 'nullvm_serveronly',
                                                     'p99')
    latency_v2_both_p99 = get_latency_y_series(df, 'nullvm_both', 'p99')

    # Parse data for the master
    if request.method == "POST" and 'master_release_name' in request.POST:
        master_selected_release.append(request.POST['master_release_name'])

    df = pd.read_csv(perf_data_path + master_release_names[0] + ".csv")
    # Parse data for the current release
    if len(master_selected_release) > 1:
        master_selected_release.pop(0)
    if len(master_selected_release) > 0:
        df = pd.read_csv(perf_data_path + master_selected_release[0] + ".csv")

    latency_mixer_base_p50_master = get_latency_y_series(
        df, '_mixer_base', 'p50')
    latency_mixer_serveronly_p50_master = get_latency_y_series(
        df, '_mixer_serveronly', 'p50')
    latency_mixer_both_p50_master = get_latency_y_series(
        df, '_mixer_both', 'p50')
    latency_nomixer_serveronly_p50_master = get_latency_y_series(
        df, '_nomixer_serveronly', 'p50')
    latency_nomixer_both_p50_master = get_latency_y_series(
        df, '_nomixer_both', 'p50')
    latency_v2_serveronly_p50_master = get_latency_y_series(
        df, 'nullvm_serveronly', 'p50')
    latency_v2_both_p50_master = get_latency_y_series(df, 'nullvm_both', 'p50')

    latency_mixer_base_p90_master = get_latency_y_series(
        df, '_mixer_base', 'p90')
    latency_mixer_serveronly_p90_master = get_latency_y_series(
        df, '_mixer_serveronly', 'p90')
    latency_mixer_both_p90_master = get_latency_y_series(
        df, '_mixer_both', 'p90')
    latency_nomixer_serveronly_p90_master = get_latency_y_series(
        df, '_nomixer_serveronly', 'p90')
    latency_nomixer_both_p90_master = get_latency_y_series(
        df, '_nomixer_both', 'p90')
    latency_v2_serveronly_p90_master = get_latency_y_series(
        df, 'nullvm_serveronly', 'p90')
    latency_v2_both_p90_master = get_latency_y_series(df, 'nullvm_both', 'p90')

    latency_mixer_base_p99_master = get_latency_y_series(
        df, '_mixer_base', 'p99')
    latency_mixer_serveronly_p99_master = get_latency_y_series(
        df, '_mixer_serveronly', 'p99')
    latency_mixer_both_p99_master = get_latency_y_series(
        df, '_mixer_both', 'p99')
    latency_nomixer_serveronly_p99_master = get_latency_y_series(
        df, '_nomixer_serveronly', 'p99')
    latency_nomixer_both_p99_master = get_latency_y_series(
        df, '_nomixer_both', 'p99')
    latency_v2_serveronly_p99_master = get_latency_y_series(
        df, 'nullvm_serveronly', 'p99')
    latency_v2_both_p99_master = get_latency_y_series(df, 'nullvm_both', 'p99')

    context = {
        'cur_selected_release': cur_selected_release,
        'master_selected_release': master_selected_release,
        'cur_release_names': cur_release_names,
        'master_release_names': master_release_names,
        'latency_mixer_base_p50': latency_mixer_base_p50,
        'latency_mixer_serveronly_p50': latency_mixer_serveronly_p50,
        'latency_mixer_both_p50': latency_mixer_both_p50,
        'latency_nomixer_serveronly_p50': latency_nomixer_serveronly_p50,
        'latency_nomixer_both_p50': latency_nomixer_both_p50,
        'latency_v2_serveronly_p50': latency_v2_serveronly_p50,
        'latency_v2_both_p50': latency_v2_both_p50,
        'latency_mixer_base_p90': latency_mixer_base_p90,
        'latency_mixer_serveronly_p90': latency_mixer_serveronly_p90,
        'latency_mixer_both_p90': latency_mixer_both_p90,
        'latency_nomixer_serveronly_p90': latency_nomixer_serveronly_p90,
        'latency_nomixer_both_p90': latency_nomixer_both_p90,
        'latency_v2_serveronly_p90': latency_v2_serveronly_p90,
        'latency_v2_both_p90': latency_v2_both_p90,
        'latency_mixer_base_p99': latency_mixer_base_p99,
        'latency_mixer_serveronly_p99': latency_mixer_serveronly_p99,
        'latency_mixer_both_p99': latency_mixer_both_p99,
        'latency_nomixer_serveronly_p99': latency_nomixer_serveronly_p99,
        'latency_nomixer_both_p99': latency_nomixer_both_p99,
        'latency_v2_serveronly_p99': latency_v2_serveronly_p99,
        'latency_v2_both_p99': latency_v2_both_p99,
        'latency_mixer_base_p50_master': latency_mixer_base_p50_master,
        'latency_mixer_serveronly_p50_master':
        latency_mixer_serveronly_p50_master,
        'latency_mixer_both_p50_master': latency_mixer_both_p50_master,
        'latency_nomixer_serveronly_p50_master':
        latency_nomixer_serveronly_p50_master,
        'latency_nomixer_both_p50_master': latency_nomixer_both_p50_master,
        'latency_v2_serveronly_p50_master': latency_v2_serveronly_p50_master,
        'latency_v2_both_p50_master': latency_v2_both_p50_master,
        'latency_mixer_base_p90_master': latency_mixer_base_p90_master,
        'latency_mixer_serveronly_p90_master':
        latency_mixer_serveronly_p90_master,
        'latency_mixer_both_p90_master': latency_mixer_both_p90_master,
        'latency_nomixer_serveronly_p90_master':
        latency_nomixer_serveronly_p90_master,
        'latency_nomixer_both_p90_master': latency_nomixer_both_p90_master,
        'latency_v2_serveronly_p90_master': latency_v2_serveronly_p90_master,
        'latency_v2_both_p90_master': latency_v2_both_p90_master,
        'latency_mixer_base_p99_master': latency_mixer_base_p99_master,
        'latency_mixer_serveronly_p99_master':
        latency_mixer_serveronly_p99_master,
        'latency_mixer_both_p99_master': latency_mixer_both_p99_master,
        'latency_nomixer_serveronly_p99_master':
        latency_nomixer_serveronly_p99_master,
        'latency_nomixer_both_p99_master': latency_nomixer_both_p99_master,
        'latency_v2_serveronly_p99_master': latency_v2_serveronly_p99_master,
        'latency_v2_both_p99_master': latency_v2_both_p99_master,
    }
    return render(request, "latency.html", context=context)
Пример #6
0
def cpu_memory(request):
    cur_release_names, cur_release_dates, master_release_names, master_release_dates = download.download_benchmark_csv(
        20)

    if request.method == "POST" and 'current_release_name' in request.POST:
        cpu_cur_selected_release.append(request.POST['current_release_name'])

    df = pd.read_csv(perf_data_path + cur_release_names[0] + ".csv")
    # Parse data for the current release
    if len(cpu_cur_selected_release) > 1:
        cpu_cur_selected_release.pop(0)
    if len(cpu_cur_selected_release) > 0:
        df = pd.read_csv(perf_data_path + cpu_cur_selected_release[0] + ".csv")

    cpu_mixer_base = get_cpu_y_series(df, '_mixer_base')
    cpu_mixer_serveronly = get_cpu_y_series(df, '_mixer_serveronly')
    cpu_mixer_both = get_cpu_y_series(df, '_mixer_both')
    cpu_nomixer_serveronly = get_cpu_y_series(df, '_nomixer_serveronly')
    cpu_nomixer_both = get_cpu_y_series(df, '_nomixer_both')
    cpu_v2_serveronly = get_cpu_y_series(df, 'nullvm_serveronly')
    cpu_v2_both = get_cpu_y_series(df, 'nullvm_both')

    mem_mixer_base = get_mem_y_series(df, '_mixer_base')
    mem_mixer_serveronly = get_mem_y_series(df, '_mixer_serveronly')
    mem_mixer_both = get_mem_y_series(df, '_mixer_both')
    mem_nomixer_serveronly = get_mem_y_series(df, '_nomixer_serveronly')
    mem_nomixer_both = get_mem_y_series(df, '_nomixer_both')
    mem_v2_serveronly = get_mem_y_series(df, 'nullvm_serveronly')
    mem_v2_both = get_mem_y_series(df, 'nullvm_both')

    # Parse data for the master
    if request.method == "POST" and 'master_release_name' in request.POST:
        cpu_master_selected_release.append(request.POST['master_release_name'])

    df = pd.read_csv(perf_data_path + master_release_names[0] + ".csv")
    # Parse data for the current release
    if len(cpu_master_selected_release) > 1:
        cpu_master_selected_release.pop(0)
    if len(cpu_master_selected_release) > 0:
        df = pd.read_csv(perf_data_path + cpu_master_selected_release[0] +
                         ".csv")

    cpu_mixer_base_master = get_cpu_y_series(df, '_mixer_base')
    cpu_mixer_serveronly_master = get_cpu_y_series(df, '_mixer_serveronly')
    cpu_mixer_both_master = get_cpu_y_series(df, '_mixer_both')
    cpu_nomixer_serveronly_master = get_cpu_y_series(df, '_nomixer_serveronly')
    cpu_nomixer_both_master = get_cpu_y_series(df, '_nomixer_both')
    cpu_v2_serveronly_master = get_cpu_y_series(df, 'nullvm_serveronly')
    cpu_v2_both_master = get_cpu_y_series(df, 'nullvm_both')

    mem_mixer_base_master = get_mem_y_series(df, '_mixer_base')
    mem_mixer_serveronly_master = get_mem_y_series(df, '_mixer_serveronly')
    mem_mixer_both_master = get_mem_y_series(df, '_mixer_both')
    mem_nomixer_serveronly_master = get_mem_y_series(df, '_nomixer_serveronly')
    mem_nomixer_both_master = get_mem_y_series(df, '_nomixer_both')
    mem_v2_serveronly_master = get_mem_y_series(df, 'nullvm_serveronly')
    mem_v2_both_master = get_mem_y_series(df, 'nullvm_both')

    context = {
        'cpu_cur_selected_release': cpu_cur_selected_release,
        'cpu_master_selected_release': cpu_master_selected_release,
        'cur_release_names': cur_release_names,
        'master_release_names': master_release_names,
        'cpu_mixer_base': cpu_mixer_base,
        'cpu_mixer_serveronly': cpu_mixer_serveronly,
        'cpu_mixer_both': cpu_mixer_both,
        'cpu_nomixer_serveronly': cpu_nomixer_serveronly,
        'cpu_nomixer_both': cpu_nomixer_both,
        'cpu_v2_serveronly': cpu_v2_serveronly,
        'cpu_v2_both': cpu_v2_both,
        'cpu_mixer_base_master': cpu_mixer_base_master,
        'cpu_mixer_serveronly_master': cpu_mixer_serveronly_master,
        'cpu_mixer_both_master': cpu_mixer_both_master,
        'cpu_nomixer_serveronly_master': cpu_nomixer_serveronly_master,
        'cpu_nomixer_both_master': cpu_nomixer_both_master,
        'cpu_v2_serveronly_master': cpu_v2_serveronly_master,
        'cpu_v2_both_master': cpu_v2_both_master,
        'mem_mixer_base': mem_mixer_base,
        'mem_mixer_serveronly': mem_mixer_serveronly,
        'mem_mixer_both': mem_mixer_both,
        'mem_nomixer_serveronly': mem_nomixer_serveronly,
        'mem_nomixer_both': mem_nomixer_both,
        'mem_v2_serveronly': mem_v2_serveronly,
        'mem_v2_both': mem_v2_both,
        'mem_mixer_base_master': mem_mixer_base_master,
        'mem_mixer_serveronly_master': mem_mixer_serveronly_master,
        'mem_mixer_both_master': mem_mixer_both_master,
        'mem_nomixer_serveronly_master': mem_nomixer_serveronly_master,
        'mem_nomixer_both_master': mem_nomixer_both_master,
        'mem_v2_serveronly_master': mem_v2_serveronly_master,
        'mem_v2_both_master': mem_v2_both_master,
    }
    return render(request, "cpu-memory.html", context=context)
Пример #7
0
def master_regression(request):
    _, _, _, master_href_links, _, master_release_dates = download.download_benchmark_csv(
        60)

    latency_none_mtls_base_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_none_mtls_baseline', 'p90')
    latency_none_mtls_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_none_mtls_both', 'p90')
    latency_none_plaintext_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_none_plaintext_both', 'p90')
    latency_v2_stats_nullvm_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_v2-stats-nullvm_both',
        'p90')
    latency_v2_stats_wasm_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_v2-stats-wasm_both', 'p90')
    latency_v2_sd_nologging_nullvm_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_v2-sd-nologging-nullvm_both', 'p90')
    latency_v2_sd_full_nullvm_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_v2-sd-full-nullvm_both',
        'p90')
    latency_none_security_authz_ip_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_authz_ip_both', 'p90')
    latency_none_security_authz_path_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_authz_path_both', 'p90')
    latency_none_security_authz_jwt_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_authz_jwt_both', 'p90')
    latency_none_security_peer_authn_both_p90_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_peer_authn_both', 'p90')

    latency_none_mtls_base_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_none_mtls_baseline', 'p99')
    latency_none_mtls_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_none_mtls_both', 'p99')
    latency_none_plaintext_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_none_plaintext_both', 'p99')
    latency_v2_stats_nullvm_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_v2-stats-nullvm_both',
        'p99')
    latency_v2_stats_wasm_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_v2-stats-wasm_both', 'p99')
    latency_v2_sd_nologging_nullvm_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_v2-sd-nologging-nullvm_both', 'p99')
    latency_v2_sd_full_nullvm_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates, '_v2-sd-full-nullvm_both',
        'p99')
    latency_none_security_authz_ip_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_authz_ip_both', 'p99')
    latency_none_security_authz_path_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_authz_path_both', 'p99')
    latency_none_security_authz_jwt_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_authz_jwt_both', 'p99')
    latency_none_security_peer_authn_both_p99_master = get_telemetry_mode_y_series(
        master_href_links, master_release_dates,
        '_none_security_peer_authn_both', 'p99')

    context = {
        'latency_none_mtls_base_p90_master':
        latency_none_mtls_base_p90_master,
        'latency_none_mtls_both_p90_master':
        latency_none_mtls_both_p90_master,
        'latency_none_plaintext_both_p90_master':
        latency_none_plaintext_both_p90_master,
        'latency_v2_stats_nullvm_both_p90_master':
        latency_v2_stats_nullvm_both_p90_master,
        'latency_v2_stats_wasm_both_p90_master':
        latency_v2_stats_wasm_both_p90_master,
        'latency_v2_sd_nologging_nullvm_both_p90_master':
        latency_v2_sd_nologging_nullvm_both_p90_master,
        'latency_v2_sd_full_nullvm_both_p90_master':
        latency_v2_sd_full_nullvm_both_p90_master,
        'latency_none_security_authz_ip_both_p90_master':
        latency_none_security_authz_ip_both_p90_master,
        'latency_none_security_authz_path_both_p90_master':
        latency_none_security_authz_path_both_p90_master,
        'latency_none_security_authz_jwt_both_p90_master':
        latency_none_security_authz_jwt_both_p90_master,
        'latency_none_security_peer_authn_both_p90_master':
        latency_none_security_peer_authn_both_p90_master,
        'latency_none_mtls_base_p99_master':
        latency_none_mtls_base_p99_master,
        'latency_none_mtls_both_p99_master':
        latency_none_mtls_both_p99_master,
        'latency_none_plaintext_both_p99_master':
        latency_none_plaintext_both_p99_master,
        'latency_v2_stats_nullvm_both_p99_master':
        latency_v2_stats_nullvm_both_p99_master,
        'latency_v2_stats_wasm_both_p99_master':
        latency_v2_stats_wasm_both_p99_master,
        'latency_v2_sd_nologging_nullvm_both_p99_master':
        latency_v2_sd_nologging_nullvm_both_p99_master,
        'latency_v2_sd_full_nullvm_both_p99_master':
        latency_v2_sd_full_nullvm_both_p99_master,
        'latency_none_security_authz_ip_both_p99_master':
        latency_none_security_authz_ip_both_p99_master,
        'latency_none_security_authz_path_both_p99_master':
        latency_none_security_authz_path_both_p99_master,
        'latency_none_security_authz_jwt_both_p99_master':
        latency_none_security_authz_jwt_both_p99_master,
        'latency_none_security_peer_authn_both_p99_master':
        latency_none_security_peer_authn_both_p99_master,
    }

    return render(request, "master_regression.html", context=context)
Пример #8
0
def latency_vs_conn(request, uploaded_csv_url=None):
    if uploaded_csv_url is not None:
        uploaded_csv_path = cwd + uploaded_csv_url
        df = pd.read_csv(uploaded_csv_path)
        context = get_lantency_vs_conn_context(df)
        os.remove(uploaded_csv_path)
        return context
    else:
        cur_href_links, cur_release_names, cur_release_dates, master_href_links, master_release_names, \
            master_release_dates = download.download_benchmark_csv(60)
        cur_benchmark_test_ids = get_benchmark_test_ids(cur_href_links)
        master_benchmark_test_ids = get_benchmark_test_ids(master_href_links)

        if request.method == "POST" and 'current_release_name' in request.POST:
            cur_selected_release.append(request.POST['current_release_name'])

        df = pd.read_csv(perf_data_path + "cur_temp.csv")

        if cur_release_names is not None and len(cur_release_names) > 0:
            df = pd.read_csv(perf_data_path + cur_href_links[0].split("/")[4] + "_benchmark.csv")
        # Parse data for the current release
        if len(cur_selected_release) > 1:
            cur_selected_release.pop(0)
        if len(cur_selected_release) > 0:
            df = pd.read_csv(perf_data_path + cur_href_links[0].split("/")[4] + "_benchmark.csv")

        release_context = get_lantency_vs_conn_context(df)

        # Parse data for the master
        if request.method == "POST" and 'master_release_name' in request.POST:
            master_selected_release.append(request.POST['master_release_name'])

        df = pd.read_csv(perf_data_path + "master_temp.csv")

        if master_release_names is not None and len(master_release_names) > 0:
            df = pd.read_csv(perf_data_path + master_href_links[0].split("/")[4] + "_benchmark.csv")
        # Parse data for the current release
        if len(master_selected_release) > 1:
            master_selected_release.pop(0)
        if len(master_selected_release) > 0:
            df = pd.read_csv(perf_data_path + master_href_links[0].split("/")[4] + "_benchmark.csv")

        latency_none_mtls_base_p50_master = get_latency_vs_conn_y_series(df, '_none_mtls_baseline', 'p50')
        latency_none_mtls_both_p50_master = get_latency_vs_conn_y_series(df, '_none_mtls_both', 'p50')
        latency_none_plaintext_both_p50_master = get_latency_vs_conn_y_series(df, '_none_plaintext_both', 'p50')
        latency_v2_stats_nullvm_both_p50_master = get_latency_vs_conn_y_series(df, '_v2-stats-nullvm_both', 'p50')
        latency_v2_sd_nologging_nullvm_both_p50_master = get_latency_vs_conn_y_series(df,
                                                                                      '_v2-sd-nologging-nullvm_both',
                                                                                      'p50')
        latency_v2_sd_full_nullvm_both_p50_master = get_latency_vs_conn_y_series(df, '_v2-sd-full-nullvm_both', 'p50')

        latency_none_mtls_base_p90_master = get_latency_vs_conn_y_series(df, '_none_mtls_baseline', 'p90')
        latency_none_mtls_both_p90_master = get_latency_vs_conn_y_series(df, '_none_mtls_both', 'p90')
        latency_none_plaintext_both_p90_master = get_latency_vs_conn_y_series(df, '_none_plaintext_both', 'p90')
        latency_v2_stats_nullvm_both_p90_master = get_latency_vs_conn_y_series(df, '_v2-stats-nullvm_both', 'p90')
        latency_v2_sd_nologging_nullvm_both_p90_master = get_latency_vs_conn_y_series(df,
                                                                                      '_v2-sd-nologging-nullvm_both',
                                                                                      'p90')
        latency_v2_sd_full_nullvm_both_p90_master = get_latency_vs_conn_y_series(df, '_v2-sd-full-nullvm_both', 'p90')

        latency_none_mtls_base_p99_master = get_latency_vs_conn_y_series(df, '_none_mtls_baseline', 'p99')
        latency_none_mtls_both_p99_master = get_latency_vs_conn_y_series(df, '_none_mtls_both', 'p99')
        latency_none_plaintext_both_p99_master = get_latency_vs_conn_y_series(df, '_none_plaintext_both', 'p99')
        latency_v2_stats_nullvm_both_p99_master = get_latency_vs_conn_y_series(df, '_v2-stats-nullvm_both', 'p99')
        latency_v2_sd_nologging_nullvm_both_p99_master = get_latency_vs_conn_y_series(df,
                                                                                      '_v2-sd-nologging-nullvm_both',
                                                                                      'p99')
        latency_v2_sd_full_nullvm_both_p99_master = get_latency_vs_conn_y_series(df, '_v2-sd-full-nullvm_both', 'p99')

        other_context = {'current_release': current_release,
                         'cur_selected_release': cur_selected_release,
                         'master_selected_release': master_selected_release,
                         'cur_release_names': cur_benchmark_test_ids,
                         'master_release_names': master_benchmark_test_ids,
                         }

        master_context = {'latency_none_mtls_base_p50_master': latency_none_mtls_base_p50_master,
                          'latency_none_mtls_both_p50_master': latency_none_mtls_both_p50_master,
                          'latency_none_plaintext_both_p50_master': latency_none_plaintext_both_p50_master,
                          'latency_v2_stats_nullvm_both_p50_master': latency_v2_stats_nullvm_both_p50_master,
                          'latency_v2_sd_nologging_nullvm_both_p50_master': latency_v2_sd_nologging_nullvm_both_p50_master,
                          'latency_v2_sd_full_nullvm_both_p50_master': latency_v2_sd_full_nullvm_both_p50_master,
                          'latency_none_mtls_base_p90_master': latency_none_mtls_base_p90_master,
                          'latency_none_mtls_both_p90_master': latency_none_mtls_both_p90_master,
                          'latency_none_plaintext_both_p90_master': latency_none_plaintext_both_p90_master,
                          'latency_v2_stats_nullvm_both_p90_master': latency_v2_stats_nullvm_both_p90_master,
                          'latency_v2_sd_nologging_nullvm_both_p90_master': latency_v2_sd_nologging_nullvm_both_p90_master,
                          'latency_v2_sd_full_nullvm_both_p90_master': latency_v2_sd_full_nullvm_both_p90_master,
                          'latency_none_mtls_base_p99_master': latency_none_mtls_base_p99_master,
                          'latency_none_mtls_both_p99_master': latency_none_mtls_both_p99_master,
                          'latency_none_plaintext_both_p99_master': latency_none_plaintext_both_p99_master,
                          'latency_v2_stats_nullvm_both_p99_master': latency_v2_stats_nullvm_both_p99_master,
                          'latency_v2_sd_nologging_nullvm_both_p99_master': latency_v2_sd_nologging_nullvm_both_p99_master,
                          'latency_v2_sd_full_nullvm_both_p99_master': latency_v2_sd_full_nullvm_both_p99_master,
                          }

        context = reduce(lambda x, y: dict(x, **y), (other_context, release_context, master_context))

        return render(request, "latency_vs_conn.html", context=context)
Пример #9
0
def artifact(request):
    cur_release_names, cur_release_dates, master_release_names, master_release_dates = download.download_benchmark_csv(
        30)
    gcs_prefix = "https://gcsweb.istio.io/gcs/istio-build/perf/benchmark_data-"
    cur_release_bundle = [[]] * len(cur_release_names)
    master_release_bundle = [[]] * len(master_release_names)
    for i in range(len(cur_release_names)):
        cur_release_bundle[i] = [0] * 2
        cur_release_bundle[i][0] = cur_release_names[i]
        cur_release_bundle[i][1] = gcs_prefix + cur_release_names[i]

    for i in range(len(master_release_names)):
        master_release_bundle[i] = [0] * 2
        master_release_bundle[i][0] = master_release_names[i]
        master_release_bundle[i][1] = gcs_prefix + master_release_names[i]

    context = {
        'current_release': current_release,
        'cur_release_bundle': cur_release_bundle,
        'master_release_bundle': master_release_bundle
    }

    return render(request, "artifact.html", context=context)
Пример #10
0
def artifact(request):
    cur_href_links, cur_release_names, cur_release_dates, master_href_links, master_release_names, master_release_dates = download.download_benchmark_csv(
        60)
    cur_release_bundle = get_artifacts_release_bundle(cur_release_dates,
                                                      cur_release_names,
                                                      cur_href_links)
    master_release_bundle = get_artifacts_release_bundle(
        master_release_dates, master_release_names, master_href_links)

    context = {
        'current_release': current_release,
        'cur_release_bundle': cur_release_bundle,
        'master_release_bundle': master_release_bundle
    }

    return render(request, "artifact.html", context=context)
Пример #11
0
def master_alert(request):
    cur_release_names, cur_release_dates, master_release_names, master_release_dates = download.download_benchmark_csv(
        40)

    master_pattern_mixer_base_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_mixer_base', 'p90')
    master_pattern_mixer_serveronly_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_mixer_serveronly', 'p90')
    master_pattern_mixer_both_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_mixer_both', 'p90')
    master_pattern_none_serveronly_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_none_serveronly', 'p90')
    master_pattern_none_both_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_none_both', 'p90')
    master_pattern_v2_serveronly_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, 'nullvm_serveronly', 'p90')
    master_pattern_v2_both_p90 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, 'nullvm_both', 'p90')

    master_pattern_mixer_base_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_mixer_base', 'p99')
    master_pattern_mixer_serveronly_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_mixer_serveronly', 'p99')
    master_pattern_mixer_both_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_mixer_both', 'p99')
    master_pattern_none_serveronly_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_none_serveronly', 'p99')
    master_pattern_none_both_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, '_none_both', 'p99')
    master_pattern_v2_serveronly_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, 'nullvm_serveronly', 'p99')
    master_pattern_v2_both_p99 = get_mixer_mode_y_series(
        master_release_names, master_release_dates, 'nullvm_both', 'p99')

    context = {
        'current_release': current_release,
        'master_pattern_mixer_base_p90': master_pattern_mixer_base_p90,
        'master_pattern_mixer_serveronly_p90':
        master_pattern_mixer_serveronly_p90,
        'master_pattern_mixer_both_p90': master_pattern_mixer_both_p90,
        'master_pattern_none_serveronly_p90':
        master_pattern_none_serveronly_p90,
        'master_pattern_none_both_p90': master_pattern_none_both_p90,
        'master_pattern_v2_serveronly_p90': master_pattern_v2_serveronly_p90,
        'master_pattern_v2_both_p90': master_pattern_v2_both_p90,
        'master_pattern_mixer_base_p99': master_pattern_mixer_base_p99,
        'master_pattern_mixer_serveronly_p99':
        master_pattern_mixer_serveronly_p99,
        'master_pattern_mixer_both_p99': master_pattern_mixer_both_p99,
        'master_pattern_none_serveronly_p99':
        master_pattern_none_serveronly_p99,
        'master_pattern_none_both_p99': master_pattern_none_both_p99,
        'master_pattern_v2_serveronly_p99': master_pattern_v2_serveronly_p99,
        'master_pattern_v2_both_p99': master_pattern_v2_both_p99
    }
    return render(request, "master_alert.html", context=context)
Пример #12
0
def cpu_memory(request, uploaded_csv_url=None):
    if uploaded_csv_url is not None:
        uploaded_csv_path = cwd + uploaded_csv_url
        df = pd.read_csv(uploaded_csv_path)
        context = get_cpu_mem_context(df)
        os.remove(uploaded_csv_path)
        return context
    else:
        cur_release_names, cur_release_dates, master_release_names, master_release_dates = download.download_benchmark_csv(
            20)

        if request.method == "POST" and 'current_release_name' in request.POST:
            cpu_cur_selected_release.append(
                request.POST['current_release_name'])

        df = pd.read_csv(perf_data_path + "cur_temp.csv")

        if cur_release_names is not None and len(cur_release_names) > 0:
            df = pd.read_csv(perf_data_path + cur_release_names[0] + ".csv")
        # Parse data for the current release
        if len(cpu_cur_selected_release) > 1:
            cpu_cur_selected_release.pop(0)
        if len(cpu_cur_selected_release) > 0:
            df = pd.read_csv(perf_data_path + cpu_cur_selected_release[0] +
                             ".csv")

        release_context = get_cpu_mem_context(df)

        # Parse data for the master
        if request.method == "POST" and 'master_release_name' in request.POST:
            cpu_master_selected_release.append(
                request.POST['master_release_name'])

        df = pd.read_csv(perf_data_path + "master_temp.csv")

        if master_release_names is not None and len(master_release_names) > 0:
            df = pd.read_csv(perf_data_path + master_release_names[0] + ".csv")
        # Parse data for the current release
        if len(cpu_master_selected_release) > 1:
            cpu_master_selected_release.pop(0)
        if len(cpu_master_selected_release) > 0:
            df = pd.read_csv(perf_data_path + cpu_master_selected_release[0] +
                             ".csv")

        cpu_mixer_both_master = get_cpu_y_series(df, '_mixer_both')
        cpu_none_mtls_base_master = get_cpu_y_series(df, '_none_mtls_base')
        cpu_none_mtls_both_master = get_cpu_y_series(df, '_none_mtls_both')
        cpu_none_plaintext_both_master = get_cpu_y_series(
            df, '_none_plaintext_both')
        cpu_v2_stats_nullvm_both_master = get_cpu_y_series(
            df, '_v2-stats-nullvm_both')
        cpu_v2_sd_nologging_nullvm_both_master = get_cpu_y_series(
            df, '_v2-sd-nologging-nullvm_both')
        cpu_v2_sd_full_nullvm_both_master = get_cpu_y_series(
            df, '_v2-sd-full-nullvm_both')

        mem_mixer_both_master = get_mem_y_series(df, '_mixer_both')
        mem_none_mtls_base_master = get_mem_y_series(df, '_none_mtls_base')
        mem_none_mtls_both_master = get_mem_y_series(df, '_none_mtls_both')
        mem_none_plaintext_both_master = get_mem_y_series(
            df, '_none_plaintext_both')
        mem_v2_stats_nullvm_both_master = get_mem_y_series(
            df, '_v2-stats-nullvm_both')
        mem_v2_sd_nologging_nullvm_both_master = get_mem_y_series(
            df, '_v2-sd-nologging-nullvm_both')
        mem_v2_sd_full_nullvm_both_master = get_mem_y_series(
            df, '_v2-sd-full-nullvm_both')

        other_context = {
            'current_release': current_release,
            'cpu_cur_selected_release': cpu_cur_selected_release,
            'cpu_master_selected_release': cpu_master_selected_release,
            'cur_release_names': cur_release_names,
            'master_release_names': master_release_names,
        }

        master_context = {
            'cpu_mixer_both_master': cpu_mixer_both_master,
            'cpu_none_mtls_base_master': cpu_none_mtls_base_master,
            'cpu_none_mtls_both_master': cpu_none_mtls_both_master,
            'cpu_none_plaintext_both_master': cpu_none_plaintext_both_master,
            'cpu_v2_stats_nullvm_both_master': cpu_v2_stats_nullvm_both_master,
            'cpu_v2_sd_nologging_nullvm_both_master':
            cpu_v2_sd_nologging_nullvm_both_master,
            'cpu_v2_sd_full_nullvm_both_master':
            cpu_v2_sd_full_nullvm_both_master,
            'mem_mixer_both_master': mem_mixer_both_master,
            'mem_none_mtls_base_master': mem_none_mtls_base_master,
            'mem_none_mtls_both_master': mem_none_mtls_both_master,
            'mem_none_plaintext_both_master': mem_none_plaintext_both_master,
            'mem_v2_stats_nullvm_both_master': mem_v2_stats_nullvm_both_master,
            'mem_v2_sd_nologging_nullvm_both_master':
            mem_v2_sd_nologging_nullvm_both_master,
            'mem_v2_sd_full_nullvm_both_master':
            mem_v2_sd_full_nullvm_both_master
        }

        context = reduce(lambda x, y: dict(x, **y),
                         (other_context, release_context, master_context))
        return render(request, "cpu_memory.html", context=context)