我想监控 API 的响应时间。我可以使用平均值、中位数等方法进行监控。但是我在使用这些方法时面临以下问题:
平均值问题
如果其中一个请求花费了非常长的时间。例如,在给定的集合中,由于值为 1000,平均值会变高。
S1= [ 1 , 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1000]
中位数问题
它的正确值只有 50%。例如在给定的集合 S2=[2,2,2,2,2,50,50,50,50]。中位数给出的值为 2,但大多数用户都面临着缓慢的响应。
5-95 跨度的问题(http://steveakers.com/2013/08/01/span-vs-median-for-response-time-monitors/)
在上述文章中,作者建议使用值 uppser95-uppser5。但是,如果响应时间如下所示,则不会产生警报: s3=[50,50,50,50,50] 。在这种情况下,所有 API 的响应都很慢。但跨度 5-95 为零。
我正在考虑使用这两个值中的任何一个。upper95 或 (upper95+upper5)/2。
哪一个会更好,为什么?有没有更好的方法来计算 QOS ?