Pengelogan dan Pemantauan Berkesan untuk Aplikasi Node.js

Susan Sarandon
Lepaskan: 2024-11-01 02:30:02
asal
520 orang telah melayarinya

Effective Logging and Monitoring for Node.js Applications

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.

  1. Kepentingan Pembalakan dan Pemantauan
  2. Menyediakan Log masuk Node.js
  3. Menggunakan Winston untuk Pembalakan Fleksibel
  4. Memantau dengan Prometheus dan Grafana
  5. Melaksanakan Pemeriksaan Kesihatan
  6. Kes Penggunaan Dunia Sebenar: Pembalakan dan Pemantauan dalam Pengeluaran

Kepentingan Pembalakan dan Pemantauan

Log dan pemantauan memberikan cerapan tentang:

  • Kesihatan aplikasi: Makluman masa nyata tentang ralat, ranap atau isu kritikal.
  • Metrik prestasi: Data tentang masa respons pelayan, penggunaan memori dan pengendalian beban.
  • Aktiviti pengguna: Menjejak permintaan pengguna, tindakan yang berjaya dan ralat.
  • Penyahpepijatan: Penyelesaian masalah yang lebih pantas dengan menentukan isu melalui log ralat dan kesan.

Menyediakan Log masuk Node.js

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.

Contoh Pengelogan Asas:

// Basic logging in Node.js
console.log("Application started");
console.error("An error occurred");
Salin selepas log masuk
Salin selepas log masuk

Untuk aplikasi gred pengeluaran, gunakan pembalak berstruktur seperti Winston atau Bunyan.

Menggunakan Winston untuk Pembalakan Fleksibel

Winston ialah perpustakaan pengelogan popular dalam Node.js yang membenarkan tahap pengelogan boleh dikonfigurasikan dan menyokong berbilang pengangkutan (cth., fail, konsol, HTTP).

Menyediakan Winston:

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");
Salin selepas log masuk
Salin selepas log masuk

Pemantauan dengan Prometheus dan Grafana

Prometheus ialah alat yang berkuasa untuk mengumpul metrik aplikasi dan Grafana membolehkan anda memvisualisasikan metrik ini melalui papan pemuka terperinci.

Langkah 1: Pasang Prometheus Client untuk Node.js

Pasang pakej prom-client:

npm install prom-client
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Menyediakan Metrik Prometheus

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();
});
Salin selepas log masuk

Langkah 3: Dedahkan Titik Akhir Metrik

Buat titik akhir untuk mendedahkan metrik kepada Prometheus:

// Basic logging in Node.js
console.log("Application started");
console.error("An error occurred");
Salin selepas log masuk
Salin selepas log masuk

Langkah 4: Visualisasikan dengan Grafana

Sambungkan Prometheus ke Grafana dan buat papan pemuka tersuai untuk menggambarkan metrik seperti kadar permintaan, kependaman dan penggunaan memori.

Melaksanakan Pemeriksaan Kesihatan

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.

Contoh: Titik Akhir Pemeriksaan Kesihatan dalam Node.js

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");
Salin selepas log masuk
Salin selepas log masuk

Sepadukan pemeriksaan kesihatan dengan alat pemantauan seperti AWS CloudWatch atau Pemantauan Awan Google untuk membuat makluman apabila isu timbul.

Kes Penggunaan Dunia Sebenar: Pembalakan dan Pemantauan dalam Pengeluaran

Andaikan anda menjalankan aplikasi e-dagang di AWS, menyampaikan ratusan permintaan sesaat. Berikut ialah cara untuk menyediakan pengelogan dan pemantauan yang mantap:

Langkah 1: Laksanakan Pembalakan dengan Winston

Gunakan Winston untuk log semua tindakan kritikal, termasuk permintaan pengguna, transaksi yang berjaya dan ralat.

npm install prom-client
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Sediakan Prometheus untuk Koleksi Metrik

Gunakan Prometheus untuk menjejaki metrik seperti tempoh permintaan, permintaan aktif dan penggunaan memori. Ini boleh membantu mengenal pasti isu prestasi semasa masa trafik tinggi.

Langkah 3: Cipta Papan Pemuka Grafana untuk Pemantauan

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.

Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan