溫馨提示×

如何在Ubuntu上進行Nodejs性能監控

小樊
44
2025-08-05 03:15:55
欄目: 編程語言

在Ubuntu上進行Node.js性能監控可以通過多種工具和方法實現。以下是一些常用的監控解決方案:

系統級性能監控工具

  • tophtop:實時顯示系統中各個進程的資源占用情況,包括CPU和內存。
  • vmstat:顯示系統的虛擬內存統計信息,如內存使用率和交換區使用情況。
  • iostat:監控系統的磁盤I/O操作,包括讀寫速度和等待時間。
  • sar:收集、報告和保存系統活動信息,如CPU使用率、內存使用情況和網絡流量。
  • dstat:一個多功能的系統資源監控工具,可以實時顯示CPU、內存、磁盤I/O和網絡流量等信息。
  • glances:一個跨平臺的系統監控工具,可以快速查看系統的狀態和性能。
  • Conky:一個輕量級的系統監視工具,可以監控服務器的運行狀態、網絡流量和服務可用性等。

Node.js應用級性能監控工具

  • 內置模塊
    • console.time()console.timeEnd():用于測量代碼塊的執行時間。
    • process.memoryUsage():獲取進程的內存使用情況。
    • process.cpuUsage():獲取CPU使用率。
  • 第三方庫
    • xprofiler:提供詳細的性能分析功能,如高精度計時器。
    • node-inspector:基于Blink開發工具的Node.js調試器,提供類似Chrome DevTools的功能。
    • electron-profiler:Electron的官方性能分析工具,收集應用程序運行時的各種信息。
    • express-status-monitor:提供實時的服務器性能指標和健康檢查。
    • PrometheusGrafana:用于更詳細的性能監控和可視化。

使用PM2進行監控與自動重啟

  • 安裝PM2
    npm install pm2 -g
    
  • 啟動應用
    pm2 start app.js --watch
    
  • 監控應用
    pm2 monit
    
  • 查看日志
    pm2 logs
    
  • 查看資源使用情況
    pm2 top
    

使用Prometheus和Grafana進行監控

  • 安裝Node.js的Prometheus客戶端
    npm install prom-client
    
  • 在Node.js應用程序中定義和記錄指標
    const client = require('prom-client');
    const requestDuration = new client.histogram({ name: 'http_request_duration_seconds', help: 'duration of http requests in seconds', labelnames: ['method', 'status'] });
    const activeRequests = new client.gauge({ name: 'active_requests', help: 'number of active requests' });
    app.use((req, res, next) => {
      const end = requestDuration.startTimer();
      activeRequests.inc();
      res.on('finish', () => {
        end({ method: req.method, status: res.statusCode });
        activeRequests.dec();
      });
      next();
    });
    
  • 公開指標端點
    app.get('/metrics', async (req, res) => {
      res.set('content-type', client.register.contentType);
      res.send(await client.register.metrics());
    });
    
  • 使用Grafana進行可視化:將Prometheus連接到Grafana并創建自定義儀表板以可視化請求率、延遲和內存使用等指標。

通過上述方法,可以有效地監控Node.js應用在Ubuntu上的性能和資源使用情況,確保應用的穩定性和高可用性。結合使用Prometheus、Grafana、Winston和Tinymonit等工具,可以獲得全面的監控數據,從而更好地理解和優化您的應用。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女