平时我们做业务处理时,想看一个时间端的业务请求实况,看下某些接口 cpu
内存
等 使用情况,做出针对性的接口优化时要做一个监控系统。但是如果是自己搞一个小项目没有那么多资源应该如何实现呢。这里我们采用 Nest
的一个第三方包 nest-status-monitor
来看一下。
贴出 node.js框架–Nest.js 中文文档以方便大家进一步学习 Nest 中文文档(https://docs.nestjs.cn/)
状态监控包文档 nest-status-monitor:
https://www.npmjs.com/package/nest-status-monitor
安装依赖
-
首先在我们的
Nest
项目中安装一下需要的依赖 -
yarn add nest-status-monitor
状态监控包 -
yarn add @nestjs/platform-socket.io 6.10.14
需要用到的socket
包 ,这里因为状态监控包由于版本和最新的socket
包不兼容,故安装老的版本
实现
-
状态监控配置
/* statusMonitor.ts */ export default { pageTitle: 'Nest.js Monitoring ', // 配置端口 port: 3000, // 这里记得加全局路由 '/api' path: '/status', ignoreStartsWith: '/health/alive', spans: [ { interval: 1, // Every second retention: 60, // Keep 60 datapoints in memory }, { interval: 5, // Every 5 seconds retention: 60, }, { interval: 15, // Every 15 seconds retention: 60, }, ], chartVisibility: { cpu: true, mem: true, load: true, responseTime: true, rps: true, statusCodes: true, }, healthChecks: [], };
-
mian.ts 文件中引用,并注册
/* mAIn.ts */ import { StatusMonitorModule } from 'nest-status-monitor'; import statusMonitorConfig from './config/statusMonitor'; async function bootstrap() { ... // 注册状态监控 StatusMonitorModule.setUp(statusMonitorConfig), } bootstrap();
效果
-
启动项目
yarn run start:dev
-
在浏览器中输入 http://localhost:3000/api/status 这个是设置的显示地址。大家也可以根据自己需求环境去设置
-
如上图所示,我刚才测试发了两个
400
的请求 与一个200
的请求,清晰的展示在最下面。
总结
- 至此我们在开发成本不高的情况下已经弄好了一个小工具,可实时监控服务器情况。
- 大家知道那些支持 Nest 开源的小工具,可以在评论区进行交流。互相学习~( ̄▽ ̄)~*
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)