全部产品
阿里云办公

5分钟快速入门

更新时间:2018-07-13 14:13:14

1. 准备工作

2. 操作指南

I. 创建应用

II. 服务器部署 Node.js 性能平台

a. 安装 Node.js 性能平台所需组件

  1. # 安装版本管理工具 tnvm,安装过程出错参考:https://github.com/aliyun-node/tnvm
  2. wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash
  3. source ~/.bashrc
  4. # tnvm ls-remote alinode 查看需要的版本
  5. tnvm install alinode-v3.11.4 # 安装需要的版本
  6. tnvm use alinode-v3.11.4 # 使用需要的版本
  7. npm install @alicloud/agenthub -g # 安装 agenthub

验证安装是否成功,需要确保which nodewhich agenthub的路径中包括.tnvm即可。

  1. root@iZbp1gqe9a9t5d246bp7vqZ:~# which node
  2. /root/.tnvm/versions/alinode/v3.11.4/bin/node
  3. root@iZbp1gqe9a9t5d246bp7vqZ:~# which agenthub
  4. /root/.tnvm/versions/alinode/v3.11.4/bin/agenthub

创建新应用中获得的App IDApp Secret 按如下所示保存为 yourconfig.json

  1. {
  2. "appid": "12345", # 前面申请到的 appid,保存时删掉这条注释。
  3. "secret": "kflajglkajlgjalsgjlajdgfakjkgj" # 前面申请到的 secret,保存时删掉这条注释。
  4. }

b. 启动 agenthub

  1. agenthub start yourconfig.json
  2. # 通过 agenthub list 查看 agenthub 是否启动成功
  3. # 如果没有 agenthub 实例,通过调试模式启动 agenthub:
  4. # DEBUG=* agenthub start yourconfig.json
  5. # ~/.agenthub.log 查看 agenthub 日志。

c. 复制下面的代码到 demo.js

注意:该 demo 模拟计算密集型应用,请勿在生产环境中使用。

  1. const http = require('http');
  2. const crypto = require('crypto');
  3. const reqHeaders = [];
  4. const algorithm = 'aes-256-cbc';
  5. const key = ['this', 'is', 'a', 'test'].join(' ');
  6. const encode = function(str) {
  7. var buf = new Buffer(str)
  8. var encrypted = "";
  9. var cip = crypto.createCipher(algorithm, key);
  10. encrypted += cip.update(buf, 'binary', 'hex');
  11. encrypted += cip.final('hex');
  12. return encrypted;
  13. };
  14. const decode = function(encrypted){
  15. var decrypted = "";
  16. var decipher = crypto.createDecipher(algorithm, key);
  17. decrypted += decipher.update(encrypted, 'hex', 'binary');
  18. decrypted += decipher.final('binary');
  19. return decrypted;
  20. }
  21. http.createServer(function(req, res) {
  22. reqHeaders.push(req.headers);
  23. let enc = encode(req.headers['host']);
  24. let dec = decode(enc);
  25. res.end('hello')
  26. }).listen(8848);

d. 启动应用

  1. ENABLE_NODE_LOG=YES node demo.js

注意:

若出现提示信息 Environment variable <NODE_LOG_DIR> not configured, </tmp/> will be used to record node internal log.表明运行时日志(非应用日志)存储目录是默认的 /tmp/

III. 通过控制台观察监控数据,执行诊断操作

  • 控制台 中观察各个监控信息
  • Node.js进程数据中查看进程级别的数据

注意:

1. 本例未配置 错误日志报警 等功能。

2. 性能平台每分钟上传一次日志,请等待几分钟后查看数据。

3. 更详细的 Node.js 性能平台 runtime 部署参见 用户指南-部署方式