现在上一个项目,如果没有APM监控服务或应用的运行性能参数,等于是一架没有盲降系统的飞机正在盲降,结果会很悲催。出现了访问失效等问题时,都很难判定是性能瓶颈还是一个藏的深的bug,汇报的时候一顿眼晕,这样的结果肯定是要被人分分钟的各种撕。
目前还没有像样的给node.js项目应用的APM开源项目,暂且先羡慕嫉妒下给java用的PinPoint。
不用开源的就用专业的APM提供商的产品,先解决问题,国内有很多专业提供商,也是不错。
国外的New Relic也是被推荐的一家,集成进node.js特别方便,监控功能齐全。
创建APM监控
要使用的话,首先是去首页注册一个账户,注册完后就会显示一个“Get started with New Relic”页面,在里面选择node.js。
然后按照页面上的步骤一步一步配置。
主要过程:
1.记下分配给你的license key。
2.在项目中安装newrelic库。
npm install newrelic --save
3.将node_modules/newrelic下的newrelic.js复制到项目的根目录下,也就是和node_modules同级。
4.配置newrelic.js文件。
/**
* New Relic 客户配置文件.
*
* 参考 lib/config.defaults.js 获得更多的配置.
*/
exports.config = {
/**
* 应用名称数组,就写项目的名字或者喜欢的任意名字
*/
app_name : ['My Application'],
/**
* 你的 New Relic 授权 key
*/
license_key : 'license key here',
logging : {
/**
* 日志等级. 'trace' 对于 New Relic 诊断问题时是最有用的
* 'info' 级别以及更高的应该应用于生产应用
*/
level : 'info'
}
};
5.在启动脚本的第一行加入代码
require('newrelic');
6.点击“listening your application”,开始监听应用并收数据。
7.运行项目,5分钟后,进到你的APM控制台中,会看到一个已application name命名的监控项,进去即能看到该项目的性能监控数据表。
常用
因为是免费版,只能看24小时的数据,想延长时间和一些高级功能就是付费版的节奏了。
最常用的就是“Overview”概况页面。
其中:
Web transactions time:这里能看到不同层面的交互时间,可以看图标下方的色块代表不同的含义,比较有用的就是响应时间。
Apdex score:应用性能指数,就是一打分,蓝色区域表示最好,黄色区域最差。
Transactions:表示各个交互的处理时间,最耗时的在最上,从这里能看清哪个url的访问是耗时最长的,可以到Transactions页面中详细查看交互性能展示。
Error rate:错误率。