Ivan A. Melnikov created KAFKA-5203:
---------------------------------------
Summary: 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)