node中怎么使用Nest.js 實現(xiàn)請求監(jiān)控?下面本篇文章給大家介紹一下node 框架 Nest.js 實現(xiàn)簡易版請求監(jiān)控的方法,希望對大家有所幫助!
平時我們做業(yè)務處理時,想看一個時間端的業(yè)務請求實況,看下某些接口 cpu
內(nèi)存
等 使用情況,做出針對性的接口優(yōu)化時要做一個監(jiān)控系統(tǒng)。但是如果是自己搞一個小項目沒有那么多資源應該如何實現(xiàn)呢。這里我們采用 Nest
的一個第三方包 nest-status-monitor
來看一下。
貼出 node.js框架–Nest.js 中文文檔以方便大家進一步學習 Nest 中文文檔(https://docs.nestjs.cn/)
狀態(tài)監(jiān)控包文檔 nest-status-monitor:
https://www.npmjs.com/package/nest-status-monitor
安裝依賴
-
首先在我們的
Nest
項目中安裝一下需要的依賴 -
yarn add nest-status-monitor
狀態(tài)監(jiān)控包 -
yarn add @nestjs/platform-socket.io 6.10.14
需要用到的socket
包 ,這里因為狀態(tài)監(jiān)控包由于版本和最新的socket
包不兼容,故安裝老的版本
實現(xiàn)
-
狀態(tài)監(jiān)控配置
/* 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() { ... // 注冊狀態(tài)監(jiān)控 StatusMonitorModule.setUp(statusMonitorConfig), } bootstrap();
效果
-
啟動項目
yarn run start:dev
-
在瀏覽器中輸入 http://localhost:3000/api/status 這個是設置的顯示地址。大家也可以根據(jù)自己需求環(huán)境去設置
-
如上圖所示,我剛才測試發(fā)了兩個
400
的請求 與一個200
的請求,清晰的展示在最下面。
總結(jié)
- 至此我們在開發(fā)成本不高的情況下已經(jīng)弄好了一個小工具,可實時監(jiān)控服務器情況。
- 大家知道那些支持 Nest 開源的小工具,可以在評論區(qū)進行交流。互相學習~( ̄▽ ̄)~*