APM 系统如何监控和收集机器交互?

APM 系统如何监控和收集机器交互?

所以我大致了解 New Relic 之类的东西如何检测 .NET 应用程序——CLR Profiler API 非常合理。但我不明白 AppDynamics 之类的东西如何理解服务器之间的关联以及如何检测实际上并非基于 .NET 的东西。有人能解释一下这些东西内部是如何工作的吗?

答案1

然后,您还可以使用非侵入式监控,它可以帮助您通过录制的脚本主动锻炼应用程序,并监控响应时间,以便在出现问题和速度减慢时收到警报。这个领域有很多 APM 工具(Gomez 现在有 AppDynamics、Catchpoint、SolarWinds APM、Ipswitch APM 等)。

如果您拥有 Citrix 或 Microsoft 托管环境,其中应用程序的图像被传送到客户端 UI,则应寻找具有使用实际客户端连接 UI 的图像识别功能的脚本。然后通过将屏幕与测试脚本开发期间创建的基线响应图像进行比较来完成监控。可能需要看看http://www.tevron.com/load-testing-citratest-vu-load-testing-methodology.aspx

答案2

APM 产品对每种语言的检测方式不同,它们使用 API 组合(例如分析 API),并使用其他方法将代码注入应用程序。这提供了各种指标,您可以观察应用程序的连接(入口点和出口点),从而确定应用程序是否连接到其他地方。您还可以根据代码中的协议解码拦截和存储 SQL 或 HTTP 调用等内容。

现在回到您的主要问题,AppDynamics 如何工作。每个 APM 工具都以不同的方式执行此操作(如果它们确实执行此操作)。Dynatrace 和 AppDynamics 各自具有不同的跟踪模型。每个都有优点和缺点。AppDynamics 将事务 ID 注入协议有效负载,这是以无害的方式完成的,但如果下游连接有代理,则可以获取该数据并将其关联回事务。如果没有代理,它不会破坏应用程序。Dynatrace 会将有关其跟踪的更多数据发送到上游收集器,后者以不同的方式将事务拼接在一起。一种是分布式的(高规模,但难以对协议进行逆向工程),另一种更容易拼接,但需要大量的处理和网络带宽。

答案3

APM 监控用于测量响应时间。我们都从第一手经验中知道,没有什么比意外的缓慢响应时间更让最终用户恼火的了。事实上,缓慢可以说是比应用程序停机和不可用更大的问题。对电子商务网站的研究表明,速度减慢发生的频率是中断的十倍,这些累积的速度减慢对在线商店的利润的影响是其两倍。这意味着确保您的应用程序正常运行很重要,但这还不够。除了基本的可用性监控(例如使用自动化软件测试 IP 协议和网络服务,这些软件可以在功能发生故障或低于既定阈值时立即发出实时警报)之外,全面的 APM 方法还应考虑许多其他因素,如上一节所述,以帮助提高应用程序的整体可靠性和速度。我知道应用程序使用 Selenium 来检查此响应时间并在交易不正确时获取信息。

相关内容