我正在使用NewRelic监视一个PHP应用程序,我对我的应用程序概述中显示的一些数字感到非常困惑。
我的应用程序包含一个PHP webapp,它一方面向Web浏览器提供页面(显然是:),并在另一方面向Java后端执行请求:
浏览器< - > PHP Webapp - > Java后端
我知道一些事实,一些Java后端请求可能需要15秒才能完成,从浏览器的角度来看,这需要花费很多时间才能完成Web应用程序。
在newrelic(APM>我的应用程序>监控>概述)的概述面板中,它表示我的“app server”时间平均为1560毫秒,而我的“浏览器时间”为5.63秒(I已启用浏览器监控)。此外,“交易”部分显示完成的交易最多需要11.6秒。
那么....所有这些不同的时间测量如何在它们之间相关?总结一下,我有:
我怎样才能理解这些数字?我希望“浏览器时间”是最高的(因为它包括所有其他的,PHP和事务处理)。他们是否以某种方式加起来?其中一些是其他人的崩溃吗?
注意:我知道在newrelic中,所有关于平均时间相对于被分析的时间窗口,但是,这对我来说没有意义。
谢谢!
答案 0 :(得分:4)
好吧,我终于想通了:) 我在这里缺少的关键概念是“百分位数”。让我解释一下。
在我的问题中,我提到我的平均响应时间为1560毫秒,这似乎没有意义,因为我们的后端总是需要处理大约15秒来产生响应。以下图片是我在webapp的“概述”中获得的内容。
正如您所看到的,平均时间响应似乎并不那么糟糕。但是,我也看到交易最多需要15秒。
下面,如果展开“Web Transactions响应时间”选择器,并选择百分号(“%”),您将获得“Percentiles”图。我的如下:
在这张新图表中:
现在,一切都开始变得有意义了。我的平均请求实际上不超过2秒。但是我有很多请求非常快(红线以下),那些花费15秒的令人难以置信的时间的平均值并不明显。只有当您查看采样请求的长尾时,这些才是明显的。第95百分位和第99百分位。
要进行包装,可以通过选择图表中的“直方图”选项进行确认。我的如下:
请注意,绝大多数请求都需要200毫秒,但我们还有8.29%的事务需要超过7秒完成(如果我们可以滚动到直方图的右侧,我们会发现实际上是请求由于我们之前做过百分位数分析,所以在最后5%和1%中持续超过15秒。
(本文指出了正确的方向:https://blog.newrelic.com/2013/10/23/histograms-percentiles-new-relic-style/)
这让我迷失了很长时间,希望它可以帮助别人!