Node.js 性能平台使用 tnvm
进行版本维护,采用如下命令安装 tnvm
。
wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash
将 tnvm
添加到系统命令。根据上面命令最后的提示,针对不同操作系统,进行手工操作。例如Linux 系统下。
source ~/.bashrc
利用 tnvm 安装需要版本的运行时。请参考 Node.js性能平台运行时版本选择合适的运行时版本。
执行以下命令,查看远端版本。
tnvm ls-remote alinode
安装需要版本:版本对应关系
请根据版本对应关系,选择合适(与当前应用使用的 Node.js 版本一致)的alinode版本。
tnvm install alinode-vx.y.z
执行以下命令,使用vx.y.z的运行时。
tnvm use alinode-vx.y.z
2. 安装 agenthub
agenthub 是为 Node.js 性能平台的常驻代理服务,可以帮助执行一些监控和诊断的操作,并且它包含一组 Node.js 性能平台服务执行任务所需要的命令集合,Node.js 性能平台有且仅有执行这些命令的权限。
agenthub 同时是一个 npm 命令行工具,通过如下命令可以完成安装:
npm install @alicloud/agenthub -g
推荐阿里云用户使用 cnpm安装任何npm模块
3. 配置和启动 agenthub
agenthub需要一个配置文件来进行使用,agenthub仅会在配置指定下的目录执行命令或读取日志。
极简配置
最简单的配置只需要传入appid和secret即可,格式如下:
{
"appid": "<yourAPPID>",
"secret": "<yourSecret>"
}
其中您的应用ID和您的应用Secret请在应用设置
页面获取。将上述配置保存为config.json
,完成配置后,请使用以下命令进行执行:
$ agenthub start config.json
agenthub将以常驻进程的方式执行,agenthub 运行日志文件为 ~/.agenthub.log
文件中。如果 agenthub启动不成功,控制台将无法看到系统和进程详细信息,您可以以DEBUG 方式启动 agenthub,查看 ~/.agenthub.log
日志来确定异常。
DEBUG=* agenthub start config.json
部署完成后,请访问 https://node.console.aliyun.com/查看您的应用详情。如果一切正常,稍等片刻(1分钟)即可收到你的应用性能数据。
详细配置
详细配置如下所示:
注意:logdir
应该与启动应用时设置的环境变量NODE_LOG_DIR的值一致。
{
"appid": "<yourAPPID>",
"secret": "<yourSecret>",
"logdir": "</path/to/your/log/dir>",
"error_log": [
"</path/to/your/error.log>",
"您的应用在业务层面产生的异常日志的路径",
"例如:/path/.logs/error.#YYYY#-#MM#-#DD#-#HH#.log",
"可选"
],
"packages": [
"</path/to/your/package.json>",
"可以输入多个package.json的路径",
"可选"
],
"disks": [
"/",
"/home/user"
"可选"
],
"agentidMode": "IP"
}
error_log
配置完成后您可以在 Node.js 性能平台上看到规整后的错误日志信息;packages
配置完成后您可以看到项目的版本依赖,以及对应的安全风险提示;disks
配置需要监控的磁盘,可以在系统监控监控数据
查看;agentidMode
设置为IP
时,实例ID会添加部分IP信息,主要用于多个容器hostname
相同的场景。该配置为可选。
配置中的#YYYY#、#MM#、#DD#、#HH#是通配符,如果您的异常日志是按时间生成的,请使用它。
4. 启动应用
使用安装好的Node.js性能平台的runtime启动并监控应用。
直接启动应用
NODE_LOG_DIR=/tmp ENABLE_NODE_LOG=YES node app.js
使用pm2管理的应用
NODE_LOG_DIR=/tmp ENABLE_NODE_LOG=YES pm2 start app.js
如果在控制台无法查看到监控数据,请参考常见问题章节。