dotnet / crank

Benchmarking infrastructure for applications
MIT License
975 stars 103 forks source link

wrk output not correctly timestamped #667

Open RobertHenry6bev opened 9 months ago

RobertHenry6bev commented 9 months ago

The stdout of the wrk load generator is read by crank, and values fished out of stdout using regexps; matches are then turned into timestamped Events for the eventlogger, and eventually find their way to the json file produced by crank master.

Unfortunately, crank does not process each line of output from wrk "as soon as possible", but instead combines all lines into a single string, and when wrk is done, analyzes that string.

The timestamps in the Events represent the time of processing by crank, not the time they were read by crank. So all timestamps in the log are more or less the same time. If wrk uses line buffering, and flushes after every line, can crank read the lines in real-time, with a slight delay?

I do not know if this architecture/limitation is shared by other subprocesses like wrk2.

sebastienros commented 9 months ago

How does it matter for wrk or wrk2?