in src/straggler_healthcheck/pp_benchmark_analysis_runner.py [0:0]
def main(argv: Sequence[str]):
if len(argv) > 1:
raise app.UsageError("Too many command-line arguments.")
data_dir = _DATA_DIR.value
output_dir = _OUTPUT_DIR.value
straggler_threshold_ms = _STRAGGLER_THRESHOLD_MS.value
interesting_event_offset = _INTERESTING_EVENT_OFFSET.value
experiments = set(
pathlib.Path(filename).stem.split("-")[1]
for filename in pathlib.Path(data_dir).glob("*.textproto")
)
if not experiments:
print("No experiments found in dir: %s" % data_dir)
return
for experiment in experiments:
experiment_dir = pathlib.Path(output_dir, experiment)
experiment_dir.mkdir(parents=True, exist_ok=True)
experiment_data = pp_benchmark_analysis.read_experiment_data(
data_dir, experiment
)
heatmap_data = pp_benchmark_analysis.preprocess_experiment_data(
benchmark_results=experiment_data,
experiment=experiment,
straggler_threshold_ms=straggler_threshold_ms,
interesting_event_offset=interesting_event_offset,
)
if heatmap_data:
output_file = pathlib.Path(experiment_dir, _IMAGE_FILE_NAME.value)
_ = pp_benchmark_analysis.plot_straggler_heatmap(
heatmap_data=heatmap_data,
output_file=str(output_file),
heatmap_metadata=pp_benchmark_analysis.HeatmapMetadata(
min_width=_MINIMUM_CHART_WIDTH.value,
max_width=_MAXIMUM_CHART_WIDTH.value,
min_height=_MINIMUM_CHART_HEIGHT.value,
max_height=_MAXIMUM_CHART_HEIGHT.value,
),
)
else:
print(f"No stragglers found for experiment {experiment}.")