作者:Tom-Nolle
背景
现在的应用都是依托层层技术、由工作流中的各个组件构建而成的,应用管理也越来越困难。随着应用的复杂程度不断提高,应用性能监控(APM)工具也需要不断完善。
APM工具开发商NewRelic和Stackify推出定制化产品,将性能监控的重点从日志层面转移到代码层面。APM已经逐渐成为应用生命周期管理的一部分,而开发团队对APM的态度却非常消极。
日趋复杂的产品功能也增加了APM工具的选择难度。用户不了解工具需要的环境、能够提供的功能以及实现这些功能的技术难点。所以,理想的APM工具要么应该能够提供最有用的数据,要么应该以最小的开支提供还不错的数据。
APM工具对比
StackifyRetrace和New Relic APM都适用于一体化APM模型,能够实现监控质量与简单易用的最佳平衡。两款产品均支持通过日志分析了解服务器操作情况,同时能够实现代码层面的性能和故障监控。此外,Stackify Retrace和New Relic APM都配有仪表盘,展示性能、应用和组件数据,包括应用环境的相关数据;支持测试数据注入监控,通过模拟页面活动创建特定、可控、可验证的交互。
IT团队需要通过不同的界面和指标来监控应用的整体健康状况。Stackify Retrace和New Relic APM的目标是满足这类需求。应用整体监控和用户体验质量需求越来越强烈。应用性能指标(Apdex)是衡量用户对应用性能满意度的开放标准,在给部分用户带来帮助的同时,也增加了监控数据解读难度。
和其他APM工具一样,Retrace和New Relic APM通过日志了解应用运行趋势。所有的APM工具都可以通过定制化设计采集代码级的日志数据,提高应用代码的可见性。这样,开发人员便还可以把APM当做测试工具。如果没有代码级别的数据,APM工具就只能依靠系统日志进行应用性能监控。
New Relic还是Stackify
StackifyRetrace主要面向开发人员,目标是实现代码内部的定制化日志跟踪,提供更加丰富的应用性能信息。New Relic APM具有较好的监控广度,兼容多类编程语言和第三方应用,但监控深度不足。
不同用户对New Relic和Stackify的评价也不尽相同。New Relic用户表示,这款产品监控层面更广,便于用户通过标准指标了解应用的整体运行情况,还能实现对移动应用、网页应用、第三方应用和自定义应用的监控。而Stackify用户则能够通过这款产品深挖应用性能、测试和应用环境的状态,从而更好地了解用户体验。
作为老牌APM工具,New Relic APM市场份额大,占据主导优势,同时也为竞争品牌提供了完善自身产品的方向;而Retrace主要专注于企业商用APM工具市场细分。
CIMI公司的调查结果显示,75%的公司首席信息官更倾向于New Relic APM,而80%的开发人员则更倾向于StackifyRetrace。理想的APM产品应该同时满足不同用户群体的需求。
对于首席信息官而言,New Relic APM的监控指标基于系统和应用日志,简单易懂,能够帮助他们快速了解核心应用的运行状况;还能通过日志和代码埋点深度钻取应用性能数据。但开发人员非常抗拒这些埋点。
首席信息官不喜欢使用Retrace的主要原因在于,这款产品的界面展示晦涩难懂。Retrace的自定义代码画像功能虽然很受开发人员欢迎,但画像数据与系统日志的兼容性和关联性较差。
在开发人员看来,Retrace能够提供性能日志和故障诊断等功能,这是New Relic APM所无法比拟的。在代码中植入的Retrace日志埋点虽然比较难懂,但最终的效果远比New Relic APM更好。
而且,开发人员认为,人们高估了New Relic APM监控指标的表现。因为New Relic APM的应用性能指标以及其他关键性能指标和预警不能反映代码层面的问题,无助于故障定位。Retrace App仪表盘的信息虽然比New Relic APM更复杂,但能够提供开发人员需要的信息,只要适当调整界面展示并优化代码中的日志埋点方式,便能满足首席信息官的需求。
NewRelic APM虽然能够提供应用性能指标,但这些数字并不能实现深度性能钻取,监控粒度远不及Stackify Retrace。此外,Retrace还提供用户满意度数据,能够实现与应用或技术的直接关联。首席信息官对两款产品展示界面的看法也会受页面设计和其他用户评论的影响。
仔细研究可以发现,Stackify Retrace也有面向管理层的展示界面,同时代码画像不会对应用性能产生明显影响。首席信息官可以与开发团队沟通自己的需求,由开发人员调整Retrace的界面展示形式。Retrace功能更丰富,因而也比New Relic APM更复杂,所以很难一眼发现其优势。
结论
不过对于把开发业务外包出去、只运行第三方包或只关注云端应用的公司来说,New Relic APM基本能够满足需求。在这种场景下,两款产品没有明显的高下之分,主要取决于个人偏好或对产品的适应水平。
随着应用复杂性和分布式部署程度不断提高,APM的重要性也愈加凸显,与代码日志和画像融合的需求也更加迫切。从这个角度来说,Retrace确实是更好的选择。