在Ubuntu上監控Node.js應用性能有多種方法,以下是一些常用的工具和方法:
sudo npm install pm2 -g
pm2 start app.js --name "my-app"
pm2 status
pm2 logs my-app
pm2 monit
[Unit]
Description=My Node.js Application
After=network.target
[Service]
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=always
User=your-user
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl start my-app
sudo systemctl status my-app
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());
});
npm install winston
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('Application started');
logger.error('An error occurred');
npm install node-statsd
通過上述方法,您可以在Ubuntu系統上有效地監控Node.js應用的性能和資源使用情況,確保應用的穩定性和高可用性。