自助式部署 runtime

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

如果在控制台无法查看到监控数据,请参考常见问题章节。