Summary
The latency runner writes its final CSV files under ./data, but nothing creates that directory for native runs. The documented Docker flow hides this because the bind mount can create the host directory, but running the binary directly can complete the full transaction-sampling run and then fail at the final os.Create call.
Code path
main.go writes results with paths such as:
writeToFile(fmt.Sprintf("./data/flashblocks-%s.csv", region), flashblockTimings)
writeToFile(fmt.Sprintf("./data/base-%s.csv", region), baseTimings)
writeToFile currently calls os.Create(filename) directly, so a missing parent directory causes open ./data/...: no such file or directory.
Expected behavior
The runner should create the output directory before writing CSV results so a native run does not discard all collected samples at the very end.
Summary
The latency runner writes its final CSV files under
./data, but nothing creates that directory for native runs. The documented Docker flow hides this because the bind mount can create the host directory, but running the binary directly can complete the full transaction-sampling run and then fail at the finalos.Createcall.Code path
main.gowrites results with paths such as:writeToFilecurrently callsos.Create(filename)directly, so a missing parent directory causesopen ./data/...: no such file or directory.Expected behavior
The runner should create the output directory before writing CSV results so a native run does not discard all collected samples at the very end.