一个Web应用从开发到能成功的部署,这一个阶段是一个很重要的过程,部署不仅要有守护机制,还要有普遍性的监控体系,一个好的监控体系,通过指标的分析,能很方便的找到,有什么问题和问题在哪里。Node.js Web应用程序也是如此,你要部署到机器中,要对外提供服务,在执行业务单元时,有消耗,也有可能需要提升的点。不仅是内存的利用率,CPU的利用率,也有错误日志上报,profile分析等等,利用这些指标,来提高应用的健壮性,快速的修正问题。
今天我想分享一下,原生原味和eggjs比较贴切的阿里云-Node.js性能监控平台,目前这一项服务还是免费的,它的前身就是之前的alinode项目,通过这个平台来将应用进行性能监控,也能在一些日常的事务中,通过日志来体感程序的健壮性。
不过,我还想额外提一句,也是阿里巴巴开源的一套应用监控器,https://github.com/midwayjs/pandora ,它几乎集成了多种类型的能力诸如:监控、链路追踪、调试、进程管理等等,虽然在某些方面与Node.js性能监控平台有一定的重合,不过毕竟是在阿里云ecs上能原生契合的一个产品,双重保障,更能掌控好一个应用的全面。
在eggjs中要使用Node.js性能监控平台,就非常的简单,你需要先在Node.js性能监控平台中创建一个应用,获取到APPID和APPSECRET,然后安装
egg-alinode ,在config.xxx.js文件中配置好你的alinode,最后在你的机器中安装好alinode。
config.alinode = {
server: 'wss://agentserver.node.aliyun.com:8080',
appid: '',
secret: ''
}
过一会儿,你就能看到你应用的一些运行状况,不过这个性能监控平台主要还是针对的机器与程序的健壮性,如果你想跟踪业务,那么它不能满足你,不过pandora.js可以满足你的需求。
链路追踪在一个业务中是非常重量级特性,它可以追踪每个业务请求的全过程,在运行时直观的看出接口或页面慢在哪里、错在哪里、超时在哪里,这一点对于对外提供稳定服务,至关重要。
你可以尝试安装一下pandora.js,它自带了一个dashboard,可以很直观的去查看数据。
由于,我也是才刚刚上车,这两块东西,深入下去,怎么用起来,还是要花一些时间去梳理这一块的知识结构,比如你怎么看指标,通过什么样的指标能反映什么样的问题,这些思考,还是要契合服务端的知识体系,去看这个问题。
运维体系的搭建,是能否将Node.js运用起来的关键之处,如果没有一个良好的运维体系,Node.js还是只能在工具生态中,发挥它的价值,感谢整个社区,为Node.js解决了一部分问题,更多的问题,还是需要大家共同努力。