Use median response time instead of average response time #603

Open
opened 2026-02-28 01:51:54 -05:00 by deekerman · 1 comment
Owner

Originally created by @JonasDoesThings on GitHub (Nov 27, 2021).

⚠️ Please verify that this feature request has NOT been suggested before.

  • I checked and didn't find similar feature request

🏷️ Feature Request Type

Other

🔖 Feature description

From my view the goal of the average response time is to show the typical request. If that's the goal, the median should represent this better.

It’s common to see the average response time of a service reported. (Strictly speaking, the term “average” doesn’t refer to any particular formula, but in practice it is usually understood as the arithmetic mean: given n values, add up all the values, and divide by n.) However, the mean is not a very good metric if you want to know your “typical” response time, because it doesn’t tell you how many users actually experienced that delay.

Usually it is better to use percentiles. If you take your list of response times and sort it from fastest to slowest, then the median is the halfway point: for example, if your median response time is 200ms, that means half your requests return in less than 200ms, and half your requests take longer than that.

(Martin Kleppmann (2017) Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, pp.14-15)

✔️ Solution

Replace the average with median response time.

Alternatives

No response

📝 Additional Context

Further reading:

Originally created by @JonasDoesThings on GitHub (Nov 27, 2021). ### ⚠️ Please verify that this feature request has NOT been suggested before. - [X] I checked and didn't find similar feature request ### 🏷️ Feature Request Type Other ### 🔖 Feature description From my view the goal of the average response time is to show the typical request. If that's the goal, the median should represent this better. > It’s common to see the average response time of a service reported. (Strictly speaking, the term “average” doesn’t refer to any particular formula, but in practice it is usually understood as the arithmetic mean: given <em data-nid="a:W9">n values, add up all the values, and divide by n.) However, the mean is not a very good metric if you want to know your “typical” response time, because it doesn’t tell you how many users actually experienced that delay. > Usually it is better to use percentiles. If you take your list of response times and sort it from fastest to slowest, then the median is the halfway point: for example, if your median response time is 200ms, that means half your requests return in less than 200ms, and half your requests take longer than that. (Martin Kleppmann (2017) Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, pp.14-15) ### ✔️ Solution Replace the average with median response time. ### ❓ Alternatives _No response_ ### 📝 Additional Context Further reading: * https://www.dynatrace.com/news/blog/why-averages-suck-and-percentiles-are-great/ * https://loadium.com/blog/percentile-best-measure-for-response-time
Author
Owner

@rezzorix commented on GitHub (Dec 7, 2021):

Shouldnt be a big deal to implement both "mean average" and "median average".
Maybe even with a selection to show either a single value or both values.

@rezzorix commented on GitHub (Dec 7, 2021): Shouldnt be a big deal to implement both "mean average" and "median average". Maybe even with a selection to show either a single value or both values.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/uptime-kuma#603
No description provided.