新Relic交通

时间:2013-09-05 04:47:44

标签: ruby-on-rails heroku newrelic

我刚刚在我的Rails Heroku应用程序中添加了New Relic插件。由于New Relic向我显示每分钟左右的实时响应时间,我想知道这个功能是否会在网站上产生大量流量(或任何额外费用)?

3 个答案:

答案 0 :(得分:2)

将检测添加到应用程序时,该检测将在收集和传输数据时影响处理时间。调用仪器的次数取决于您编写代码的方式以及您设置的模式(或者我想象的)。虽然用于衡量性能的宝石会显着降低网站的性能,但我发现它极不可能(而且具有讽刺意味)。

New Relic描述了他们的应用模式如下:

  

生产模式

     

低开销仪器,可捕获详细信息   您的应用程序在生产中运行并将其传输到   newrelic.com,您可以在其中实时监控它们。

     

开发者模式

     

机架中间件,它将/ newrelic映射到应用程序,以逐页显示详细的性能指标。在Rails应用程序中自动安装。

在这里(https://newrelic.com/docs/ruby/ruby-agent-configuration),他们就生产中的开发者模式发表意见:

  

developer_mode - 在Rails应用程序中,将开发人员模式设置为true会安装New Relic Developer Mode。除了开发模式之外,这通常应该在所有环境中都是错误的,因为它会带来很高的开销,这在生产中是无法容忍的。

我不确定在New Relic的上下文中“低开销”,“高开销”和“难以忍受的”是什么意思。

就个人而言,我没有注意到我使用New Relic的少数低流量应用程序中的任何开销。

答案 1 :(得分:2)

New Relic Ruby代理在每个应用程序的进程中生成一个后台线程。这些后台线程从您的进程收集数据。数据计算为平均值,并每60秒发送到New Relic的服务器。因此,New Relic不会为您的应用程序生成任何“流量”。轻微的开销是由于New Relic使用少量内存和CPU来跟踪平均性能统计数据。 New Relic彻底测试了代理,以确保其开销很小。

答案 2 :(得分:1)

我没有挖掘Newrelic提供的Rack Middleware,但我不相信他们正在使用任何类型的奇特的异步处理/发送统计数据。他们可能会使用基于机架的会话,(根据我的理解)可以作为一种队列;它不像Sidekiq或Resque那样强大。所以...可能有一些开销,但根据我的经验,它并不重要。