在Ubuntu上进行Node.js性能监控可以通过多种工具和方法实现。以下是一些常用的监控解决方案:
console.time() 和 console.timeEnd():用于测量代码块的执行时间。process.memoryUsage():获取进程的内存使用情况。process.cpuUsage():获取CPU使用率。npm install pm2 -g
pm2 start app.js --watch
pm2 monit
pm2 logs
pm2 top
npm install prom-client
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());
});
通过上述方法,可以有效地监控Node.js应用在Ubuntu上的性能和资源使用情况,确保应用的稳定性和高可用性。结合使用Prometheus、Grafana、Winston和Tinymonit等工具,可以获得全面的监控数据,从而更好地理解和优化您的应用。