in perfmetrics/scripts/hns_rename_folders_metrics/renaming_benchmark.py [0:0]
def _run_rename_benchmark(test_type,dir_config,num_samples,upload_gs):
with open(os.path.abspath(dir_config)) as file:
dir_str = json.load(file)
exit_code = _check_for_config_file_inconsistency(dir_str)
if exit_code != 0:
log.error('Exited with code {}'.format(exit_code))
sys.exit(1)
# Check if test data exists.
dir_structure_present = _check_if_dir_structure_exists(dir_str)
if not dir_structure_present:
log.error("Test data does not exist.To create test data, run : \
python3 generate_folders_and_files.py {} ".format(dir_config))
sys.exit(1)
# Getting latency related metrics
results,time_intervals=_perform_testing(dir_str, test_type, num_samples)
parsed_metrics = _parse_results(dir_str, results, num_samples)
upload_values = _get_values_to_export(dir_str, parsed_metrics,
test_type)
print('Waiting for 360 seconds for metrics to be updated on VM...')
# It takes up to 240 seconds for sampled data to be visible on the VM metrics graph
# So, waiting for 360 seconds to ensure the returned metrics are not empty.
# Intermittently custom metrics are not available after 240 seconds, hence
# waiting for 360 secs instead of 240 secs
time.sleep(360)
# Getting VM related metrics
folders_list=[]
for folder in dir_str["folders"]["folder_structure"]:
folders_list.append(folder["name"])
folders_list.append(dir_str["nested_folders"]["folder_name"])
vm_metrics_data= _extract_vm_metrics(time_intervals,folders_list)
upload_values_vm_metrics= _get_upload_value_for_vm_metrics(vm_metrics_data)
if upload_gs:
log.info('Uploading files to the Google Sheet\n')
if test_type == "flat":
worksheet= WORKSHEET_NAME_FLAT
vm_worksheet= WORKSHEET_VM_METRICS_FLAT
else:
worksheet= WORKSHEET_NAME_HNS
vm_worksheet= WORKSHEET_VM_METRICS_HNS
exit_code = _upload_to_gsheet(worksheet, upload_values, SPREADSHEET_ID)
if exit_code != 0 :
log.error("Upload to gsheet failed!")
exit_code = _upload_to_gsheet(vm_worksheet, upload_values_vm_metrics, SPREADSHEET_ID)
if exit_code != 0 :
log.error("Upload to gsheet failed!")
else:
print('Latency related metrics: {}'.format(upload_values))
print('VM metrics: {}'.format(upload_values_vm_metrics))