Observability Glossary

Percentile

Linkedin icon
Reddit icon

When dealing with performance monitoring and optimization, percentiles are a crucial tool for understanding the distribution of values within a dataset. For example, when analyzing the response times of a web service, the 90th percentile (usually noted P90) represents the value below which 90% of the response times fall. This is particularly useful for identifying outliers and understanding the overall user experience.

Suppose we have an array of response times from a web server:

const responseTimes = [100, 150, 200, 250, 300, 350, 400, 450, 500, 550];

To calculate the 90th percentile of these response times, we can use the following code:

function percentile(arr, p) {
  arr.sort((a, b) => a - b);
  const index = Math.ceil(p * arr.length / 100) - 1;
  return arr[index];
}

const p90 = percentile(responseTimes, 90);
console.log(`The 95th percentile of response times is ${p95} milliseconds.`);

With large datasets, it is recommended to measure worse case scenarios using P90 or other percentiles, as relying on the maximum latency can be misleading due to outliers.

Explore related concepts
Start resolving issues today.
Without the hassle.