国内最知名的 CNode 社区竟然把 New Relic 的监控产品换成了OneAPM 。难道 APM 的老大 New Relic 已经被 OneAPM 超越?
毋庸置疑,在全球应用性能管理 SaaS 领域,New Relic 是当之无愧的老大。而在国内,之前还没有哪家 APM 厂商能够跟 New Relic 一较高下,作为国内最大的 Node.js 社区, 他们能够选择 OneAPM 肯定有自己的理由:(以下文章出自国内最大的 Node.js 社区 CNode 负责人 alsotang)
今天心血来潮,把原本的 New Relic 应用监控换成了OneAPM 的。感觉还不错。
官网是: http://www.oneapm.com/
大致的界面长这个样子
上图中, 1 的部分是指平均响应时间 50 + ms 。折线图可以根据你选择的时间窗口,来查看应用在特定时间内的 response time 变化情况。
2 的部分算是一个类似打分的东西,满分一分。在 New Relic 中,100ms 以内才是 0.9 分。而在 OneAPM 中,500ms 就算是 0.9 分了。有点忽悠人的感觉。因为一般的应用,都不可能去追求响应时间 < 500ms 这个阈值,这时间太久了。这个地方可以自己调一下。
3 的部分是吞吐量。由于 OneAPM 是注入我们的 Node 代码进行性能监控的,所以这个是 controller 所处理的吞吐量,如果静态资源由 CDN 或者 Nginx 处理的话,则不计入。我总感觉这个地方其实不准,大了一倍的样子,当然,New Relic 也不准。这跟他们对于【究竟怎么样算是一次 Web 事务】的判断原理有关。
4 的部分是是对于【 web 事务组】的统计比如路径 /topic/:tid 是一个事务组,/about 是一个, /user/:username 是一个。有可能我们的程序整体响应速度不高,但其实在查看用户首页的时候,由于代码写得不好而时间比较久,这时候 /user/:username 就会出现比整站平均大很多的时间。可以进行针对性优化。
这张图是 cnode 社区响应时间比较久的事务组统计。
5 的部分是错误统计。原理不明。不过也是有详情页可以查看的
其他还有一些关于数据库,关于外部服务的图表,都可以一个个看一遍,把应用的性能都直观感受一下。
其实去年9月的时候,就有 OneAPM 的同学让我试用服务,不过当时我觉得他们成立时间太短了,就怕整天需要升级或者影响社区的稳定性。一年后再来看,他们已经成熟到可以从 New Relic 迁移过来了。
安装过程特别简单,跟 New Relic 一样。只要在代码的入口 require('oneapm') ,然后在配置文件里面配置一个 key。重启程序。就可以得到性能统计了。他们做了很多的代码注入。
GA 对于我们的程序来说,不管拿到的数据再多,后端对于它来说始终是黑盒的。但是 APM 的这种监控方式,可以让我们更清楚地看到性能瓶颈和优化点所在。GA 最多就看个访客数,来访省份和时间之类的。感觉对于运营的作用大于对于性能优化的。
之前我的 Server 监控也是使用 New Relic 的,不过这块已经是相当成熟的领域了,所以我也迁移到了 OneAPM 上面。
其实就等于是用更美化的方式显示了 top 命令。而且还带历史记录功能。
用了 Server 监控之后,就有提示框出来让我试用一下 Cloud Insight 这个服务。我也去试用了一下
嗯,可点的选项比起上面简单的 Server 监控多了很多。不过我都看不懂。感觉这个要运维知识更多的人才看得懂。我们应用开发的人,配个 Server 监控就好了。
其实大多数时候,应用的性能都出在数据库请求的优化上。所以我想配置一下 MongoDB 的监控。
从 【平台服务监控】那个 tab 进去之后,我照着配置了一下,发现无效。
Cloud Insight 也声称自己可以监控 MongoDB。我看了看文档,觉得下图所示部分还挺粗糙的,就直接放弃使用了。
前两个月我有测了一下社区的 MongoDB 瓶颈。方法是把 MongoDB 的慢查询时间设为 10ms,然后观察一段时间,看看哪个查询的耗时比较久。然后找到相应的代码去优化查询。
这个地方,如果能用上图形化工具,相信一定也方便很多。
目前的话,我使用起来觉得二者没区别,除了历史日志的保留时间。免费版是 3 天,专业版是 30 天,企业版更长。 剩下的区别,就在于以下这些高级特性,
…感觉我也用不上。
总得来说,还是很推荐各位把应用迁上 OneAPM 的。
如果同样是 Node.js 开发者,我想已经没什么好犹豫的啦。
更重要的是,除了Node.js,OneAPM 支持的语言跟 New Relic 也不相上下,我们还支持 Java、.NET、Python、PHP、 Ruby 等多种主流开发语言,以及 iOS 及 Android 这两种移动端的操作系统。而且 OneAPM 也是全球首家可以同时从系统服务层、应用层、用户体验层、业务交易层提供全栈式性能管理服务的公司。
其实也未见得谁超越了谁,只是 New Relic 在那头,而OneAPM,就在这头!