![只需安装 .Net 代理,NewRelic 如何工作?](https://linux22.com/image/620145/%E5%8F%AA%E9%9C%80%E5%AE%89%E8%A3%85%20.Net%20%E4%BB%A3%E7%90%86%EF%BC%8CNewRelic%20%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
昨天,我决定新Relic尝试一下。我注册了一个免费帐户,安装了 .Net 代理,并按照说明重新启动了 IIS。该代理立即开始在仪表板上显示大量信息,例如:
- 最慢的 SQL 语句
- 哪些方法执行时间最长
- 哪些页面访问最频繁
如何通过安装 .Net Agent 完成上述操作以及更多操作?我担心实际应用程序的性能 - 我以前使用过分析工具,这些工具通过修改已编译的 DLL 大大降低了应用程序的速度。但是,此工具似乎没有修改任何内容。
我仍然需要弄清楚所有这些信息意味着什么以及它们实际上如何帮助我,但对我来说它看起来相当“神奇”,并且我担心让代理运行并将信息上传到仪表板是否会对性能产生任何影响。
答案1
New Relic 自己说他们使用 .Net 分析 API。
https://docs.newrelic.com/docs/dotnet/new-relic-net-installation#trouble
.NET 代理使用 BCI(字节码注入)来检测应用程序和系统代码。这是通过将 New Relic 代理作为“分析器”注册到 CLR(通用语言运行时)来实现的。加载代码时,CLR 会调用 .NET 代理,如果这是一次有趣的方法调用,代理就会检测代码。
答案2
New Relic .NET Agent 与传统分析工具之间的主要区别在于,New Relic .NET Agent 不会检测一切。New Relic 的开发人员仔细研究并挑选出各种框架(例如 ASP.NET)和库(例如 SQL Server)中的关键方法,并且代理仅将代码注入这些方法。传统的分析器会将代码注入一切这就是它们通常会减慢应用程序速度的原因。通过有选择地注入代码,New Relic 可以确保将开销保持在较低水平,同时仍能让您深入了解应用程序的有趣部分。