def _write_perf_data_to_logfile(benchmark_name, output_file, configuration_name, build_properties, logdog_dict, is_ref, upload_failure): viewer_url = None # logdog file to write perf results to if os.path.exists(output_file): results = None with open(output_file) as f: try: results = json.load(f) except ValueError: logging.error( 'Error parsing perf results JSON for benchmark %s' % benchmark_name) if results: try: output_json_file = logdog_helper.open_text(benchmark_name) json.dump(results, output_json_file, indent=4, separators=(',', ': ')) except ValueError as e: logging.error( 'ValueError: "%s" while dumping output to logdog' % e) finally: output_json_file.close() viewer_url = output_json_file.get_viewer_url() else: logging.warning( "Perf results JSON file doesn't exist for benchmark %s" % benchmark_name) base_benchmark_name = benchmark_name.replace('.reference', '') if base_benchmark_name not in logdog_dict: logdog_dict[base_benchmark_name] = {} # add links for the perf results and the dashboard url to # the logs section of buildbot if is_ref: if viewer_url: logdog_dict[base_benchmark_name]['perf_results_ref'] = viewer_url if upload_failure: logdog_dict[base_benchmark_name]['ref_upload_failed'] = 'True' else: logdog_dict[base_benchmark_name]['dashboard_url'] = ( upload_results_to_perf_dashboard.GetDashboardUrl( benchmark_name, configuration_name, RESULTS_URL, build_properties['got_revision_cp'], _GetMachineGroup(build_properties))) if viewer_url: logdog_dict[base_benchmark_name]['perf_results'] = viewer_url if upload_failure: logdog_dict[base_benchmark_name]['upload_failed'] = 'True'
def _upload_and_write_perf_data_to_logfile(benchmark_name, directory, configuration_name, build_properties, oauth_file, tmpfile_dir, logdog_dict, is_ref): upload_failure = False # logdog file to write perf results to output_json_file = logdog_helper.open_text(benchmark_name) # upload results and write perf results to logdog file upload_failure = _upload_perf_results(join(directory, 'perf_results.json'), benchmark_name, configuration_name, build_properties, oauth_file, tmpfile_dir, output_json_file) output_json_file.close() base_benchmark_name = benchmark_name.replace('.reference', '') if base_benchmark_name not in logdog_dict: logdog_dict[base_benchmark_name] = {} # add links for the perf results and the dashboard url to # the logs section of buildbot if is_ref: logdog_dict[base_benchmark_name]['perf_results_ref'] = \ output_json_file.get_viewer_url() else: if upload_failure: logdog_dict[base_benchmark_name]['dashboard_url'] = \ 'upload failed' else: logdog_dict[base_benchmark_name]['dashboard_url'] = \ upload_results_to_perf_dashboard.GetDashboardUrl( benchmark_name, configuration_name, RESULTS_URL, build_properties['got_revision_cp'], _GetMachineGroup(build_properties)) logdog_dict[base_benchmark_name]['perf_results'] = \ output_json_file.get_viewer_url() return upload_failure