- what-do-we-mean-by-top-percentile-or-tp-based-latency
tp90 is a minimum time under which 90% of requests have been served. Imagine you have times:
10s
1000s
100s
2s
Calculating TP is very simple:
- sort all times in ascending order: [2s, 10s, 100s, 1000s]
- find latest item in portion you need to calculate. For TP50 it will ceil(4.5)=2 requests. You need 2nd request. For TP90 it will be ceil(4.9)=4. You need 4th request.
- get time for the item found above. TP50=10s. TP90=1000s
private static int tp(List<Integer> times, int percent) {
float percentF = (float)percent/100;
int index = (int)(percentF * times.size() - 1);
Collections.sort(times);
return times.get(index);
}