Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write out Percentiles at end of test #97

Open
maddisondavid opened this issue Jan 22, 2020 · 3 comments
Open

Write out Percentiles at end of test #97

maddisondavid opened this issue Jan 22, 2020 · 3 comments

Comments

@maddisondavid
Copy link
Contributor

maddisondavid commented Jan 22, 2020

Currently the test displays final statistics along with latency percentiles at the end of the test, however these are only written as log entries. Some performance teams are using this information and currently using pattern matching to read and record these numbers. This is time consuming and also extremely fragile and must be taken into consideration whenever the tools is modified.

Instead the final summary statistics should be written to a machine readable file for analysis.

@claudiofahey
Copy link

Consider using a format that is similar to the JSON file written by OpenMessaging Benchmark - https://github.com/pravega/openmessaging-benchmark/blob/dev/benchmark-framework/src/main/java/io/openmessaging/benchmark/TestResult.java.

@RaulGracia
Copy link
Contributor

@maddisondavid I agree that an output file for results is a good idea. Moreover, I also noted that latency percentiles do not have decimal precision. In our case, it means that a value is either 2ms or 3ms, but it cannot be 2.5ms. For instance:

2020-01-22 16:48:48:540 +0000 [ForkJoinPool-1-worker-1] INFO io.pravega.perf.PerfStats - 5938 records Writing, 100.012 records/sec, 1000 bytes record size, 0.10 MiB/sec, 4.9 ms avg latency, 90.0 ms max latency, 5 ms 50th, 5 ms 75th, 6 ms 95th, 11 ms 99th, 15 ms 99.9th, 15 ms 99.99th.

As you can realize, in our scale this may be too coarse grained. Could we have decimal precision in percentiles too?

@claudiofahey
Copy link

Publish and end-to-end latency is currently measured at millisecond precision using System.currentTimeMillis(). Unlike the mean, percentiles can't be any more precise than the data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants