欢迎加入官方钉钉群 35149528 一起讨论
如果项目对你有帮助,访问 https://github.com/hyj1991/easy-monitor 来 star 支持下作者。
I. 项目简介
作为一名 Node.js 开发者,深知对于初涉服务端领域的前端同学来说,在引入 Node.js 的时候很容易心里没底:
- 我的应用内存一点点上涨,是为什么呢?
- 我的应用为何响应时间这么慢?
- 我的代码性能瓶颈在那里呢?
- …
今天我们很荣幸能回馈社区,正式开源 Easy-Monitor 3.0 版本,它是一款Node.js 应用性能监控与线上故障定位解决方案。
旨在 Node.js 的开源生态工具链上,做一些能帮助到想使用和正在使用 Node.js 的开发者更好地感知自己的 Node.js 应用状态,以更好地面对来自性能和稳定性方面的挑战。
3.0 具备以下新特性:
- 针对 Node.js 进程与系统指标的性能监控
- 错误日志展示与依赖 Npm 模块安全风险提示
- 自定义智能运维告警与线上进程实时状态导出
对比起 AliNode 等前辈,Easy-Monitor 提供了:
- 私有化部署能力。
- 低侵入性,通过 Addon 的方式提供能力,无需定制 Node.js Runtime,能更快的跟进上游。
- 支持 Linux、macOS、Windows 三大操作系统。
II. 整体架构
Easy-Monitor 经过了 1.x,2.x 两个大版本的功能迭代,目前的 3.0 版本是作者在 Node.js 监控侧的又一个阶段性总结,对这部分感兴趣的同学可以查看 前世今生。
目前实现了对 Window、Linux 和 MacOS 三大平台的 Node.js 应用监控支持,整体设计架构如下所示:
控制台前端基于 Vue.js + iView UI 框架编写,监控服务端部分则是基于 Egg.js 框架编写,UI 部分整体参考了 AliNode 控制台。
更多信息可以访问 用户手册 - 整体架构 进行查看。
在此,再次感谢 Egg.js、CNPM 和 AliNode 对 Node.js 生态带来的贡献。
III. 部署指南
参照模块设计图,可以看到项目的部署主要分为两个部分:
- 部署监控服务端
- Node.js 应用接入
我们提供了以下 Demo 帮助大家快速体验下 Easy-Monitor 3.0 的能力。
控制台
大家可以访问 控制台 Demo ,快速体验下新版。(Demo 在代码上做了一些特殊限制防止恶意操作,本地控制台部署参见下文 完整使用文档)
应用接入
我们支持各种 Node.js 应用接入,此处以 Egg.js 为例:
先安装插件:
npm i --save egg-xtransit --xprofiler_binary_host_mirror=https://npm.taobao.org/mirrors/xprofiler
启用插件:
// {app_root}/config/plugin.js
exports.xtransit = {
enable: true,
package: 'egg-xtransit',
};
配置接入信息:
// {app_root}/config/config.default.js
exports.xtransit = {
server: 'ws://devtoolx.com:7070',
appId: 1,
appSecret: 'f7b99d08cc0193106690860047b28970'
};
对应的 ID 需要访问 控制台 Demo 来注册和获取,如下:
最后按照正常操作启动 Egg.js 项目即可,正常情况下,你可以在 控制台 Demo 主页看到本地连接上来的实例:
用户手册
目前完整的使用文档部署在语雀上,参见 Easy-Monitor 3.0 用户手册。
开发者可以根据文档自行部署上述的监控服务端,再将自己的 Node.js 应用接入。
IV. 支持作者
最后的最后,作者是完全使用空余时间维护更新这个项目的,如果项目对你有帮助, 来个 star 支持下作者吧 :)
如果你在使用过程中有任何的疑问或者建议可以提 issue,或者扫码加钉钉群联系作者:
希望本项目如其名一样,能帮助开发者解决更多开发中遇到的问题,构建起对 Node.js 技术栈的信心,让 Node.js 更加 “简单”。
顶起👍
都3.0了,不愧是大佬啊
@zy445566 隔了两年了
加精华
👍
同时也是一个标准的 Egg 应用示范
顶起👍
@i5ting 感谢狼叔置顶
👍
@bubao test
👍
大佬,谢谢你们提供的工具准确定位线上问题
插眼,感谢开源分享 👍
@18820227745 可以在 CNODE 分享下故障案例哦,回头我搞个 repo 放一起帮助大家防止采坑已有问题
越做越好了,点赞
私有化部署能力正好需要。之前好早看了,还以为只是个玩具,因为有段时间没有更新了,没想到一直在偷摸干活啊~
基于 alinode 的吗?
@JZLeung 除了控制台的 UI 参考了 alinode 的设计风格(这里是基于 view-design + 纯 svg 实现的),其它的地方和 alinode 没有关系哦
已经接入线上业务,效果8⃣️错,点赞大佬
给大佬点赞👍
@PatrickStarCat 好用的话介绍给朋友看看
不错
nihao
@hyj1991 1213123
先点赞后使用
666
来自酷炫的 CNodeMD
hello
今年node party分享
👍
asdfasdfsadf