RFR: JMC-5327: Using HdrHistograms to visualize latencies
Marcus Hirt
marcus.hirt at datadoghq.com
Thu May 2 17:47:14 UTC 2019
We really should automate the verification of formatting, line ending
whitespaces and possibly allow the application of formatting from the
command line too. I'll look into adding spotless or something similar.
/M
On Thu, May 2, 2019 at 6:56 PM Alex Macdonald <almacdon at redhat.com> wrote:
> Hi Elliott,
>
> Overall this patch looks good to me. I've had Travis give it a build and it
> looks good [2].
>
> A handful of minor formatting nits:
>
> - Messages.properties (x3)
> - - the DurationPercentileTable_PERCENTILE_COL_NAME should come after
> DUMP_RECORDING_* for alphabetical order I believe
>
> - There are some cases of extra whitespace, I went through hg diff and
> counted the following number of occurrences:
> - - DurationHdrHistogram (8)
> - - DurationPercentileTable (38)
> - - FileIOPage (5)
> - - SocketIOPage (6)
> - - IOPageTest (5)
> - - IOPageTestBase (4)
> - - SocketIOPageTest(5)
>
> I noticed that when resizing the page, the durations table stays static
> whereas the other tables seems to adjust (gif) [3]. This only seems to
> cause an issue when my JMC window gets resized to just under 50% on my
> monitor width, and the chart will get hidden. In the gif my JMC window is
> around half my monitor width (of 1920), and with the JVM Browser/Outline
> window open then I don't have much more room to shrink the application
> before the chart disappears. I was just curious if the table could adjust
> to resizing like the other tables.
>
> Also not caused by this patch (but thought it'd be interesting to share),
> I'm seeing a bug where my chart text gets really large [4] when I run JMC
> locally and not as an RCP application (I recall seeing a JIRA bug for this
> before, but cannot find it), and my durations tab will only show the table
> (and not even the whole thing) [5].
>
> On Wed, May 1, 2019 at 1:01 PM Elliott Baron <ebaron at redhat.com> wrote:
>
> > Hi,
> >
> > Please review this patch which adds additional IO duration statistics
> > using HdrHistogram [1]. One of the nice features of HdrHistogram is its
> > ability to generate percentile distributions of data, while using
> > limited space. For latency measurements, this can be a useful tool to
> > draw attention to outliers where latency is particularly bad.
> >
> > These statistics are displayed in a new table within the File and Socket
> > IO pages. This table shows the read/write duration at predetermined
> > percentiles (0, 90, 99, 99.9, 99.99, 99.999, and 100), and the total
> > number of items <= that duration. I originally planned to show this
> > information in a chart, but ran into difficulties expressing a
> > non-linear percentile axis with JMC's charting API. After discussions
> > with Marcus, I opted to display this information using a table alongside
> > the existing chart.
> >
> > I included some UI tests that verify the values in each of these
> > HdrHistogram tables using a new (gzipped) JFR recording. I tried to keep
> > this recording as small as possible, while still getting somewhat
> > interesting results in the tables.
> >
> > HdrHistogram itself is already bundled on Maven Central, I simply added
> > it to our third-party p2 repository and target platforms. The included
> > translations for the word "percentile" are the result of consulting
> > online dictionaries, there may be better terms.
> >
> > Bug: https://bugs.openjdk.java.net/browse/JMC-5327
> > Webrev: http://cr.openjdk.java.net/~aptmac/JMC-5327/webrev.00/
> > Preview: https://imgur.com/a/MlA2C7y
> >
> > Thanks,
> > Elliott
> >
> > [1] http://hdrhistogram.org/
>
>
> Cheers,
>
> Alex
>
> [2] https://travis-ci.org/aptmac/jmc-qa/builds/527337343
> [3] https://imgur.com/XfkFqkI
> [4] https://imgur.com/Zii9nzw
> [5] https://imgur.com/Wyh6nbs
>
More information about the jmc-dev
mailing list