You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ivan A. Melnikov (JIRA)" <ji...@apache.org> on 2017/05/09 12:15:04 UTC
[jira] [Commented] (KAFKA-5203) Percentilles are calculated
incorrectly
[ https://issues.apache.org/jira/browse/KAFKA-5203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16002583#comment-16002583 ]
Ivan A. Melnikov commented on KAFKA-5203:
-----------------------------------------
I actually have a fix for this issue. I'll create a pull request shortly.
> Percentilles are calculated incorrectly
> ---------------------------------------
>
> Key: KAFKA-5203
> URL: https://issues.apache.org/jira/browse/KAFKA-5203
> Project: Kafka
> Issue Type: Bug
> Components: metrics
> Reporter: Ivan A. Melnikov
> Priority: Minor
>
> After the samples are purged couple of times, the calculated percentile values tend to decrease comparing to the expected values.
> Consider the following simple example (sorry, idk if I can make it shorter):
> {code}
> int buckets = 100;
> Metrics metrics = new Metrics(new MetricConfig().eventWindow(buckets/2).samples(2));
> Sensor sensor = metrics.sensor("test");
> sensor.add(new Percentiles(4 * buckets, 100.0, Percentiles.BucketSizing.CONSTANT,
> new Percentile(metrics.metricName("test.p50", "grp1"), 50),
> new Percentile(metrics.metricName("test.p75", "grp1"), 75)));
> Metric p50 = metrics.metrics().get(metrics.metricName("test.p50", "grp1"));
> Metric p75 = metrics.metrics().get(metrics.metricName("test.p75", "grp1"));
> for (int i = 0; i < buckets; i++) sensor.record(i);
> System.out.printf("p50=%.3f p75=%.3f\n", p50.value(), p75.value());
> for (int i = 0; i < buckets; i++) sensor.record(i);
> System.out.printf("p50=%.3f p75=%.3f\n", p50.value(), p75.value());
> for (int i = 0; i < buckets; i++) sensor.record(i);
> System.out.printf("p50=%.3f p75=%.3f\n", p50.value(), p75.value());
> {code}
> The output from this is:
> {noformat}
> p50=50.000 p75=74.490
> p50=24.490 p75=36.735
> p50=15.306 p75=24.490
> {noformat}
> The expected output is, of course, with all three lines similar to the first one.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)