在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等工具,可以獲得全面的監控數據,從而更好地理解和優化您的應用。