Software Monitoring: What are percentiles?

Nishant Garg
2 min readJan 8, 2024

--

Monitoring software using percentiles is a crucial aspect of performance analysis. Percentiles provide a more nuanced view of your application’s response times compared to simple averages. Here’s a brief explanation:

Understanding Percentiles:

Percentiles represent the distribution of values in a dataset.

The 50th percentile (median) is the value below which 50% of the data falls

In software monitoring, commonly used percentiles are 50th (median), 95th, and 99th.

Why Use Percentiles?

  • Outliers: Averages can be skewed by outliers. Percentiles provide a more accurate representation of the majority of response times.
  • User Experience: Higher percentiles (95th, 99th) give insights into the experience of most users. For instance, the 95th percentile represents the response time experienced by 95% of users.
  • Service Level Agreements (SLAs): These are contractual agreements that delineate the expected performance and availability of a service. This term is commonly employed by a multitude of Software as a Service (SaaS) and cloud providers as they extend their services to users.

Implementation in Monitoring:

  • Response Time Monitoring:Track the response times of your software components and services.
  • Percentile Calculation: Regularly calculate and analyze percentiles, especially the 95th and 99th.
  • Alerts: Set up alerts based on percentile thresholds. Unusually high percentiles may indicate performance issues.

Tools for Monitoring:

  • APM Tools: Application Performance Monitoring tools like New Relic, Datadog, or AppDynamics often provide percentile metrics.
  • Custom Logging: Implement custom logging in your application to record response times and calculate percentiles.

Interpretation:

  • Benchmarking: Compare current percentiles with historical data to identify trends or performance improvements.
  • Problem Identification: Sudden spikes in higher percentiles might indicate issues that need investigation.

Continuous Improvement:

  • Optimization: Use percentiles to identify bottlenecks and areas for optimization.
  • Capacity Planning: Plan for future growth based on the 95th and 99th percentiles.

Remember, percentiles provide a more detailed picture of your software’s performance, enabling you to address issues before they significantly impact user experience. Regular monitoring and analysis are key to maintaining optimal system performance.

I hope you found this helpful. If you have any questions or want to talk anything about tech, feel free to connect with me on LinkedIn.

--

--