"app server" 时间与 newrelic 中的 "browser time" 和 "transaction time" 有什么关系?

How is "app server" time related to "browser time" and "transaction time" in newrelic?

我正在使用 NewRelic 监控一个 PHP 应用程序,我对我的应用程序概述中显示的一些数字感到非常困惑。

我的应用程序包含一个 PHP 网络应用程序,它在一侧为网络浏览器提供页面(显然 :),并在另一侧向 Java 后端执行请求:

浏览器 <--> PHP Webapp --> Java 后端

我知道一些 Java 后端请求最多可能需要 15 秒才能完成,导致从浏览器的角度来看完整的 webapp 需要那么多时间。

在 newrelic 的概览面板(APM > 我的应用程序 > 监控 > 概览)中,显示我的 "app server" 时间平均为 1560 毫秒,我的 "browser time" 为 5.63 秒(我启用了浏览器监控)。此外,"Transactions" 部分显示交易最多需要 11.6 秒才能完成。

那么....所有这些不同的时间测量值之间有何关联?总而言之,我有:

我如何理解这些数字?我原以为 "browser time" 是最高的(因为它包括所有其他的,包括 PHP 和交易处理)。他们以某种方式加起来吗?其中一些是其他人的故障吗?

注意:我知道在 newrelic 中,它是相对于被分析时间 window 的平均时间,但这对我来说仍然没有意义。

谢谢!

好吧,我终于想通了:) 我在这里遗漏的关键概念是 "percentiles"。让我稍微解释一下。

在我的问题中,我提到我得到的平均响应时间为 1560 毫秒,这似乎没有意义,因为我们的后端始终需要处理大约 15 秒才能产生响应。下面的图片是我在我的 webapp 的 "overview" 中得到的。

如您所见,平均响应时间似乎还不错。但是,我还看到最多需要 15 秒的交易。

接下来,如果展开 "Web Transactions response time" select 或 select 百分号(“%”),您将得到 "Percentiles" 图表。我的如下:

在此新图表中:

  • 绿线表示平均响应时间,对应第一张图的绿色区域。在这里我们看到,事实上它表明交易平均需要不到 2 秒才能完成。到目前为止一切顺利。
  • 橙色线,对应于“95%”。这是理解所有这些数字如何组合在一起的关键。这个“95%”对应于您请求的“第 95 个 percentile”。这意味着您 95% 的请求花费的时间少于此时间。但当然,这也意味着您有 5% 的请求占用了更多的资源!
  • 蓝线,对应于您请求的“99%”或“第 99 个百分位数”,这意味着您 99% 的请求所用的时间少于这条线,但同样,1% 的人吃得更多。
  • 红线,对应于 "median",如果事实是“50%”或“第 50 个百分位数”的同义词。这一点你可以想象这是什么:50% 的请求花费的时间少于这个时间,另外 50% 的请求花费的时间更多(因此得名 "median")。请注意,有趣的是,此度量与 "average" 概念有很大不同,因为平均值将所有时间相加并除以交易总数,因此隐藏在大量样本中,那些处于极端的交易的采样时间。

现在,一切都开始变得有意义了。我的平均请求实际上不超过 2 秒。但是我有很多非常快的请求(红线以下的请求),以至于那些花费了令人难以置信的 15 秒时间的请求在平均水平上并不明显。只有当您查看采样请求的长尾时,这些才会很明显,即。第 95 个和第 99 个百分位数。

总结一下,这可以通过图中的 "histogram" 选项 select 来确认。我的如下:

请注意,绝大多数请求都在 200 毫秒内完成,但我们也有 8.29% 的事务需要超过 7 秒才能完成(如果我们可以滚动到直方图的右侧,我们会发现实际上由于我们之前进行的百分位数分析,超过 15 秒的请求在最后 5% 和 1%。

(这篇文章为我指出了正确的方向:https://blog.newrelic.com/2013/10/23/histograms-percentiles-new-relic-style/

这让我迷茫了很长时间,希望对某人有所帮助!