@
wmttom 非常感谢推荐,欢迎试用 OneAPM。
OneAPM 做的是端到端、真实用户体验监控。目前支持多种编程语言:Java、.NET
、Pyhton、PHP、Ruby。移动端支持Android、iOS。
Ai 产品主要用于监控服务端(后端)的性能,实时抓取发生缓慢的HTTP请求、SQL语句。
Bi 产品从页面加载时间、AJAX 加载,页面 Trace、地理位置等多个角度,度量前端页面的性能。
Mi 产品监控的是移动App,App是否有缓慢的Activity、App是否崩溃闪退,可以直接看到造成这类问题的代码行。
关于淘宝鹰眼系统,我看了这篇文章大致了解了一下。
http://www.cnblogs.com/zhengyun_ustc/p/55solution2.html鹰眼是定制的,需要修改代码。
OneAPM用的是BCI技术,无需修改代码。以Java举例,只需将oneapm.jar 放在应用服务器的目录下即可。
鹰眼用的埋点逻辑,用TraceId把所有的调用关系串起来。这对于开发团队来说是不小的工作量。
现在我们来对比一下实现的效果:
淘宝的鹰眼系统

OneAPM[Ai]
Java Agent 会把所有被调用的http请求或一些后台任务纪录下来
我们这里拿一个OneAPM 抓取到的事务为例:

事务的调用拓扑图:

当发生了超过设定时间的请求,就会被当成一个trace,这里我们称为慢Web事务
在这里我们可以看到这个Web事务所有的调用关系,耗时的方法,代码行

这里我们分析下到底哪里出现了问题

以上只是大致介绍,其实还有更多的功能 :P
OneAPM Java Agent 采用的是BCI技术,感兴趣的朋友可以向我要资料。
[email protected]关于鹰眼系统的资料也欢迎大家发送给我。
这篇文章里提到性能监控系统通常有几个设计目标,目前来看OneAPM是完全符合:
(1)低侵入性——非业务组件,无侵入其他业务系统,使用方透明,减少开发人员的负担;
(2)灵活的应用策略——随时决定所收集数据的范围和粒度;
(3)时效性——从数据的收集和产生,到数据计算和处理,再到最终实时展现;
(4)决策支持——这些数据能在决策支持层面发挥作用,特别是从 DevOps 的角度;
(5)可视化。
最后,感谢@
wmttom 给我们打广告的机会 :)