Untuk sebarang aplikasi, terutamanya dalam persekitaran pengeluaran, pemantauan dan pembalakan adalah komponen kritikal. Mereka memberikan cerapan tentang kesihatan, prestasi dan potensi isu aplikasi anda. Dalam aplikasi Node.js, pemantauan membantu anda menjejaki metrik seperti masa tindak balas, penggunaan memori, kadar ralat dan banyak lagi semasa pengelogan menangkap data penting tentang aktiviti pengguna, ralat dan prestasi sistem. Artikel ini merangkumi teknik pengelogan dan pemantauan yang berkesan untuk aplikasi Node.js, dengan contoh dunia sebenar dan coretan kod.
Log dan pemantauan memberikan cerapan tentang:
Node.js mempunyai objek konsol terbina dalam, yang menyediakan fungsi pengelogan asas (console.log(), console.error(), dll.). Walau bagaimanapun, untuk aplikasi berskala, pengelogan berstruktur dan boleh dikonfigurasikan adalah penting.
// Basic logging in Node.js console.log("Application started"); console.error("An error occurred");
Untuk aplikasi gred pengeluaran, gunakan pembalak berstruktur seperti Winston atau Bunyan.
Winston ialah perpustakaan pengelogan popular dalam Node.js yang membenarkan tahap pengelogan boleh dikonfigurasikan dan menyokong berbilang pengangkutan (cth., fail, konsol, HTTP).
const winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ] }); // Log messages logger.info("This is an informational message"); logger.error("This is an error message");
Prometheus ialah alat yang berkuasa untuk mengumpul metrik aplikasi dan Grafana membolehkan anda memvisualisasikan metrik ini melalui papan pemuka terperinci.
Pasang pakej prom-client:
npm install prom-client
Tentukan metrik seperti tempoh permintaan dan permintaan aktif dalam aplikasi Node.js anda:
const client = require('prom-client'); // Create metrics 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' }); // Record metrics app.use((req, res, next) => { const end = requestDuration.startTimer(); activeRequests.inc(); res.on('finish', () => { end({ method: req.method, status: res.statusCode }); activeRequests.dec(); }); next(); });
Buat titik akhir untuk mendedahkan metrik kepada Prometheus:
// Basic logging in Node.js console.log("Application started"); console.error("An error occurred");
Sambungkan Prometheus ke Grafana dan buat papan pemuka tersuai untuk menggambarkan metrik seperti kadar permintaan, kependaman dan penggunaan memori.
Pemeriksaan kesihatan memantau keadaan permohonan anda dan memaklumkan anda tentang isu yang boleh menjejaskan ketersediaan. Ia boleh termasuk semakan asas untuk respons pelayan, penggunaan memori atau sambungan pangkalan data.
const winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ] }); // Log messages logger.info("This is an informational message"); logger.error("This is an error message");
Sepadukan pemeriksaan kesihatan dengan alat pemantauan seperti AWS CloudWatch atau Pemantauan Awan Google untuk membuat makluman apabila isu timbul.
Andaikan anda menjalankan aplikasi e-dagang di AWS, menyampaikan ratusan permintaan sesaat. Berikut ialah cara untuk menyediakan pengelogan dan pemantauan yang mantap:
Gunakan Winston untuk log semua tindakan kritikal, termasuk permintaan pengguna, transaksi yang berjaya dan ralat.
npm install prom-client
Gunakan Prometheus untuk menjejaki metrik seperti tempoh permintaan, permintaan aktif dan penggunaan memori. Ini boleh membantu mengenal pasti isu prestasi semasa masa trafik tinggi.
Sambungkan data Prometheus ke Grafana dan sediakan papan pemuka untuk memantau masa tindak balas, penggunaan CPU dan kadar ralat dalam masa nyata. Konfigurasikan makluman untuk dimaklumkan tentang sebarang anomali, seperti lonjakan dalam kadar ralat atau penggunaan memori yang tinggi.
Pengelogan dan pemantauan yang berkesan adalah penting untuk mengurus dan menskalakan aplikasi Node.js, terutamanya dalam pengeluaran. Rangka kerja pengelogan seperti Winston membolehkan anda menangkap log berstruktur, manakala alat pemantauan seperti Prometheus dan Grafana memberikan keterlihatan ke dalam metrik prestasi dan membantu anda menyelesaikan masalah dengan lebih cepat. Dengan melaksanakan alatan ini, anda boleh memastikan bahawa aplikasi Node.js anda berjalan dengan lancar, mengendalikan trafik dengan cekap dan memberikan pengguna pengalaman yang boleh dipercayai.
Dalam artikel seterusnya, kami akan meneroka melindungi aplikasi Node.js anda, membincangkan teknik seperti HTTPS, CORS, penyulitan data dan banyak lagi. Nantikan!
Atas ialah kandungan terperinci Pengelogan dan Pemantauan Berkesan untuk Aplikasi Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!