New Relic如何运作?

问题描述 投票:20回答:7

New Relic如何通过简单的安装进入我的应用程序?它如何知道所有方法,请求等?

它适用于RoR,PHP等。

任何人都能解释它背后的技术吗?我有兴趣使用我的Rails应用程序,但我想像New Relic那样顺利地完成。

谢谢

php ruby-on-rails-3 monitoring newrelic
7个回答
12
投票

首先,您将无法自行复制NewRelic的功能。忽略服务器端,rpm Gem是一个非常复杂的软件,做了很多东西。 Have a look at the source如果你想看看它如何挂钩到Rails系统。源代码值得一读,因为它在将数据发送回服务器之前对数据进行线程化和封送处理有一些很酷的东西。

如果你想要一个替代品,因为Newrelic是昂贵的(这是正确的,它的功能很棒),然后看看Github上的FreeRelic项目。


2
投票

他们正在大量使用面向ASPECT的编程概念和反射来拦截原始方法调用并在其周围添加工具。


1
投票

对于rails解决方案,您可以简单地实现更详细的日志记录级别(开发/调试级别)并查询production.log文件以获取特定事件,计时等


0
投票

在Java的情况下,它是字节码摄取。他们“破解”应用程序服务器的关键方法并在其中添加代码。然后他们将相关的交易信息发送到他们的服务器,汇总它,你可以看到摘要。这是一个非常复杂的过程,所以我不认为一个开发人员可以实现它。


0
投票

对于Java,他们将Java代理附加到JVM,JVM拦截方法调用并监视它们。您可以使用AspectJ复制相同的行为,并将每个方法调用记录到您想要的任何位置,假设创建自定义Cloudwatch指标。


0
投票

一般来说,New Relic的gem在您的Web框架中插入了一些中间件,并从您的端点收集数据(作为rails路由)直到它的响应。在每个“收获时间”(默认为60秒)之后,它会使用此数据向NR服务发送一个发布请求。您还可以使用自定义指标,自定义事件定制所需的数据。也可以使用NRQL进行查询并使用它构建图形(就像在Graphana中一样)。他们也为Wordpress提供定制服务,但一开始有点乱。如果你想节省一些钱的一些选项是配置cloudwatch + datadog,但如果正常运行时间对你的应用至关重要,我会给他们的服务。


0
投票
  • 如果您已经熟悉New Relic的应用程序监控,那么您可能知道New Relic的代理在网络应用程序中运行,这些代理收集并报告有关应用程序中发生的各种详细信息。 RUM利用代理在构建页面时动态地将JavaScript注入页面。注入的JavaScript在浏览器中收集计时信息,并包含标识在后端处理的特定应用程序和Web事务的详细信息,以及每个请求在应用程序中花费的时间。当页面在最终用户的浏览器中完成加载时,信息将异步发送回New Relic - 因此它不会影响页面加载时间。 您可以通过New Relic中的应用程序设置打开/关闭RUM。同样,您可以通过代理的配置文件打开/关闭RUM(newrelic.yml - 引入了'browser_monitoring auto_instrument'标志)。 代理已得到增强,可以自动将JavaScript注入HTML页面,因此使用RUM就像检查New Relic控制面板上的复选框一样简单。但是,如果您更喜欢更多控件,可以使用New Relic的Agent API生成JavaScript,从而准确控制包含页眉和页脚脚本的时间和位置。
© www.soinside.com 2019 - 2024. All rights reserved.