

Easy-Monitor 3.0 开源 - 基于 Egg 的 Node.js 性能监控解决方案
source link: https://zhuanlan.zhihu.com/p/147576798
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Easy-Monitor 3.0 开源 - 基于 Egg 的 Node.js 性能监控解决方案
欢迎加入钉钉群 35149528 一起讨论
# 项目简介
作为一名 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 三大操作系统。
# 整体架构
Easy-Monitor 经过了 1.x,2.x 两个大版本的功能迭代,目前的 3.0 版本是作者在 Node.js 监控侧的又一个阶段性总结,对这部分感兴趣的同学可以查看 前世今生。
目前实现了对 Windows、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 来注册和获取,如下:
Demo 控制台应用信息最后按照正常操作启动 Egg.js 项目即可,正常情况下,你可以在 控制台 Demo 主页看到本地连接上来的实例:
## 用户手册
目前完整的使用文档部署在语雀上,参见 Easy-Monitor 3.0 用户手册。
开发者可以根据文档自行部署上述的监控服务端,再将自己的 Node.js 应用接入。
如果你在使用 Easy-Monitor 3.0 项目中遇到了问题,欢迎加入钉钉群 35149528 一起讨论。
希望本项目如其名一样,能帮助开发者解决更多开发中遇到的问题,构建起对 Node.js 技术栈的信心,让 Node.js 更加 “简单”。
# 特别感谢
本文主要校对
,题图来自于 ,感谢各位。Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK