<li id="fw3su"></li>
  • <li id="fw3su"></li>
  • <div id="fw3su"><tr id="fw3su"></tr></div>
    <dl id="fw3su"></dl>
  • <div id="fw3su"><tr id="fw3su"></tr></div>
  • <sup id="fw3su"></sup>
    <progress id="fw3su"></progress><div id="fw3su"><tr id="fw3su"></tr></div><input id="fw3su"><ins id="fw3su"></ins></input>

    alinode 新手村生存指南

    alinode 是阿里云产品 Node.js 性能?#25945;?/a> 的前身。

    以前是收费项目,2018年初集成到阿里云后就完全免费了,我也是第一时间接入测试并上线使用。

    在群里安利了不少小伙伴,但真正使用的不是很多,因为大部分都不知道 node 是怎么跑起来的。

    说多了都是泪,所以打算写个简单教程,让小白也可以分分钟上手 alinode 这种神兵利器。

    基础知识

    先来了解下 alinode 是个啥东西吧,这里我找了些资料。

    有朴灵大大在 阿里D2前端技术论坛——2015融合 上的分享 alinode与Node应用性能管理(1)alinode与Node应用性能管理(2)

    还有 Node.js 性能?#25945;?#23448;方文档 以及 云栖社区 Node.js 性能?#25945;?#23448;方博客

    好了,文档比较多,如果你懒的看,那我简单一句话帮你概括下。

    alinode 就是朴灵大大修改了 node 源码,可以将 cpu、内存、GC 等数据导出的 node 版本。

    目前没有开源,不过他们准备尽快开?#30784;?/p>

    由于没有开源,所以一些小伙伴不放心,生怕有后门,泄露公司机密。

    其实完全没必要担心,这种事情简单抓包就可以看出有没有后门了。

    而且我也有?#20197;?#26426;?#30331;?#21512;下看到了 alindoe 源码,对比了官方源码后可以很负责任的告诉你完全没有后门。

    如何使用

    如果你会在线上安装 node 并且启动你的应用,那么你就会使用。

    原理是一样的,剩下的,不管你怎么启动项目,直接启动,用 pm2 或者其他方法,都无所谓。

    安装使用 (tnvm 版本)

    官网推荐使用 tnvm 安装,就是 nvm 的淘宝镜像版本,并且加入了 alinode 而已。

    # 安装版本管理工具 tnvm,安装过程出错参考:https://github.com/aliyun-node/tnvm
    wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash
    
    source ~/.bashrc # 加载配置,使当前环境立即生效
    
    tnvm ls-remote alinode # 查看需要的版本
    tnvm install alinode-v3.12.0 # 安装需要的版本
    tnvm use alinode-v3.12.0 # 使用需要的版本
    
    npm install @alicloud/agenthub -g # 安装 agenthub
    

    安装好 alinode 后,还安装了一个 @alicloud/agenthub 模块。

    官网介绍:agenthub 是由 Node.js 性能?#25945;?#25552;供的 agent 命令程序,用于协助您的 Node 应用性能数据上报和问题诊断。

    简单说就是将 alinode 生成的 cpu 内存 GC 等数据上传到 Node.js 性能?#25945;?/a> 上,这样我们就可以在?#25945;?#19978;看到监控数据了。

    好了到此安装完成,然后就是创建应用和使用了。

    安装使用 (docker 版本)

    官网提供了 docker 镜像 docker pull registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode

    但也一直被吐槽太TM大了,都是些啥啊,咋就这?#21019;螅?#20854;实官网 node 镜像也一样大。

    但在9月份的时候,他们提供了 alpine 版本,截止目前才 79.5MB 大小,非常接近官网 node 的 alpine 版本镜像。

    快来试试吧 docker pull registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode:3-alpine

    由于没有提供 Dockerfile,不少小伙伴也是心慌慌,简直就是个黑盒,所以也是一直观望状态。

    于是?#19968;?#20102;一点时间分析了官网镜像,并提取了 Dockerfile 模板,方便大家使用,而且可以随心所欲的魔改。

    模板在这 alinode Dockerfile 官网镜像模板 ,里面有详细分析原理和提取 Dockerfile 的文章,想知道原理的可以看?#30784;?

    好了,现在 Dockerfile 也有了,没有理由不用了吧。

    那么开始使用 docker alindoe,由于大家使用 docker 的姿势不同,所以还是参考 官网文档

    如果你使用 pm2 的,也可以试试我魔改过的版本 docker-alinode

    创建应用,监控 node 项目

    上面简单说了 tnvm 和 docker 的安装使用方法,但还没说具体怎么使用。

    接下来正式开始接入 alinode ?#25945;?#20102;。

    创建应用

    打开 https://node.console.aliyun.com ,没有账号的,去注册个账号,反正免费的。

    创建应用。

    复制 App ID 和 App Secret 的值。

    在你?#21335;?#30446;根目录创建一个配置,配置名随便,我这里用 alinode.config.json 演示,写入如下配置。

    {
      "appid": "76675",
      "secret": "0342cccd7ed8fc29a0f97e59f871d020533385f3"
    }
    

    ps: 详?#27010;?#32622;,请参阅 @alicloud/agenthub 模块

    我这里的目录结构如下:

    ├── node_modules
    ├── alinode.config.json
    ├── app.js
    ├── package.json
    └── yarn.lock
    

    tnvm 版本使用

    先执行 agenthub start alinode.config.json 命令,开启上报工具。

    然后启动你的应用:

    ENABLE_NODE_LOG=YES node app.js # 直接启动
    # 或者
    ENABLE_NODE_LOG=YES pm2 start pm2.js # PM2 启动
    # 或者其他任何方式,但要加上 ENABLE_NODE_LOG=YES 开启日?#23613;?

    我之前尝试将 ENABLE_NODE_LOG 写到 pm2 配置中,结果无效,然后也没去研究为什么,如果有大佬知道原因还请告知。

    然后等待1分钟后,即可在?#25945;?#19978;看到监控数据了。

    agenthub 默认上报时间是可以改的,自己根据官网文档修改吧。

    docekr 版本使用

    docker 版本可以省略创建 alinode.config.json 配置文件,直接参数配置。

    官方镜像

    docker run -d \
      -p 8000:8000 \
      -w /app \
      -v $PWD:/app \
      -e "APP_ID=76675" \
      -e "APP_SECRET=0342cccd7ed8fc29a0f97e59f871d020533385f3" \
      -h my-alinode \
      --name my-alinode \
      registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode:3-alpine \
      node app.js
    

    使用我封装的镜像,内置 pm2

    docker run -d \
      -p 8000:8000 \
      -v $PWD:/app \
      -e "APP_ID=76675" \
      -e "APP_SECRET=0342cccd7ed8fc29a0f97e59f871d020533385f3" \
      -h my-alinode \
      --name my-alinode \
      toomee/alinode:3-alpine \
      pm2-runtime start app.js
    

    ps: docker 中使用 pm2-runtime 而不是 pm2 命令。

    ps: 如果你的 pm2 配置是 ecosystem.config.js,那么可以省略最后一?#23567;?/em>

    查看监控数据

    启动后等待1分钟,即可看到监控数据。

    如图,已经有数据了。

    我们压测一下,然后看看数据。

    点击?#36947;?#38754;板,可以看到进程基本信息,这里只有一个进程,如果你开了多进程,都会在这里显示的。

    下面的 进程指标分布中 好像显示所有 node 进程,可以看到他把 agenthub 进程也显示出来了。

    由于测试项目刚启动没啥数据,所以用我们线上项目截了张图。

    可以看到 内存 cpu 会有?#25945;?#26354;线,一条是系统占用量,一条是 node 占用量。

    还有 异常日?#23613;race、模块依赖 你会发现没数据,根据 agenthub 官网配?#38376;?#32622;好后,即可看到数据。

    慢 HTTP 日志 是访问你要用和你请求后台接口的那些?#19979;?#30340;请求记录。

    有了这些数据,就可以帮助我们优化应用以及快速定位到问题了。

    抓取性能数据

    在 进程数据 页面右下角有个 抓取性能数据 区域,这些就是帮助我们排查 cpu 莫名标高,内存泄漏 等问题的工具。

    这里就不介绍了,等有空的时候单独写几篇,或者看 官方博客 上的例子。

    小结

    至此 alinode 基本使用算是差不多了。

    哪怕高级功能暂时不会用,那用 alinode 来当个监控也不错啊,在报警面板中配置报警规则,比如 cpu 飚高,load 飚高后报警,支持钉钉机器人推送,非常方便。

    这?#35859;?#32461;了 alinode 的 tnvm 和 docker 版本的使用方法。

    目的是安利更多的人来使用,为了你们?#21335;?#30446;健?#25285;?#20063;为了 alinode 和 node 社区的发展。

    如果有一天 node 官网内置了 alinode 的功能,并提供的 web监控?#25945;?源码,那就可以搭建属于自己的监控环境了。

    等到 alindoe 开源后,这一天应该不会远的。

    我来评几句
    登录后评论

    已发表评论数()

    相关站点

    +订阅
    ?#35753;?#25991;章
    11选五 新加坡二分彩开奖查询 2019抓码王图片 內蒙时时彩开奖结果 六后釆彩今晚开奖资料 20192019cba总决赛mvp 平码二肖赔多少 3d开机号和试机号今天 加拿大快乐8开加拿大28 彩色五子球 老时时彩开奖结果 山西省运城市福彩中心 福彩3d跨度走势图20192019 澳门极速快乐十分开奖结果查询今天 六码复式连码 宁夏11选5走势图爱乐彩