Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net AppDynamics或NewRelic类型的系统-它是如何工作的?_.net_Performance_Monitoring_Il_Appdynamics - Fatal编程技术网

.net AppDynamics或NewRelic类型的系统-它是如何工作的?

.net AppDynamics或NewRelic类型的系统-它是如何工作的?,.net,performance,monitoring,il,appdynamics,.net,Performance,Monitoring,Il,Appdynamics,如何构建一个AppDynamic或New Relic类型的系统,通过在应用程序运行的服务器上安装软件来收集应用程序的性能指标,包括详细的调用树统计数据 甚至可以在不使用调试信息编译应用程序的情况下收集这些指标吗 当建立这样的服务时,要考虑什么样的绩效权衡?这些软件如何最大限度地降低它们自身对应用程序的性能影响。这些产品通常的工作方式是在常用的库和方法上进行字节码注入/函数插入/猴子补丁。例如,您可以连接到JDBC查询方法、servlet基类和HTTP客户端库。当请求进入应用程序时,跟踪它发出的所

如何构建一个AppDynamic或New Relic类型的系统,通过在应用程序运行的服务器上安装软件来收集应用程序的性能指标,包括详细的调用树统计数据

甚至可以在不使用调试信息编译应用程序的情况下收集这些指标吗


当建立这样的服务时,要考虑什么样的绩效权衡?这些软件如何最大限度地降低它们自身对应用程序的性能影响。

这些产品通常的工作方式是在常用的库和方法上进行字节码注入/函数插入/猴子补丁。例如,您可以连接到JDBC查询方法、servlet基类和HTTP客户端库。当请求进入应用程序时,跟踪它发出的所有重要方法/调用,并以某种方式记录它们。将数据压缩成分析、图表和警报

除此之外,您还可以开始添加统计分析或其他选项

棘手的事情是跨流程边界跟踪请求和处理将要收集的大量性能数据。(我在AppNeta处理这个问题)


需要检查的一件事是Twitter Zipkin(),它不支持很多早期但有趣的项目。

AppDynamics和New Relic都使用标准BCI来监控开发人员用于构建应用程序(例如Servlet、struts、SOAP、JMS、JDBC等)的公共接口(入口和出口点)。这提供了一个基本的代码执行框架(调用图),其中包含的计时信息不到执行代码的5%

秘密是在减速期间发现剩余95%代码执行的时间,而不会在生产JVM中产生太多开销。AppDynamics使用内存中代理分析和Java API调用的组合,然后实时提取剩余的代码执行。这意味着不需要定制插装,也不需要显式声明希望监视解决方案插装的类/方法

AppDynamics数据收集与New Relic的数据收集非常不同。例如,使用AppDynamics,您可以跨多个JVM获取特定用户请求的完整分布式调用图,而不是请求的聚合

如今,BCI是一种商品,不同之处在于供应商使用的分析和算法触发诊断/调用图信息,因此您可以在正确的时间以正确的可见性解决问题

史蒂夫