Rumah  >  Artikel  >  hujung hadapan web  >  Tingkatkan Pemantauan Node.js Anda dengan Metrik Penting Ini

Tingkatkan Pemantauan Node.js Anda dengan Metrik Penting Ini

WBOY
WBOYasal
2024-08-09 07:15:42528semak imbas

Level Up Your Node.js Monitoring with These Essential Metrics

Sebagai pembangun Node.js, memastikan aplikasi anda berjalan lancar adalah penting. Tetapi bagaimana anda tahu apa yang berlaku di bawah tudung? Di situlah metrik masuk. Dalam artikel ini, kami akan meneroka beberapa metrik utama yang akan membantu anda memantau dan mengoptimumkan aplikasi Node.js anda seperti seorang profesional.

Untuk mengetahui lebih lanjut, anda boleh menyemak catatan blog penuh.

1. Penggunaan CPU

? Pastikan otak apl anda sihat.

Pantau penggunaan CPU untuk memastikan aplikasi anda tidak terlalu bekerja sendiri.

const os = require('os');

function getCPUUsage() {
  const cpus = os.cpus();
  const totalUsage = cpus.reduce((acc, cpu) => acc + cpu.times.user + cpu.times.system, 0);
  const totalIdle = cpus.reduce((acc, cpu) => acc + cpu.times.idle, 0);
  return totalUsage / (totalUsage + totalIdle) * 100;
}

2. Penggunaan Memori

? Jangan biarkan apl anda menjadi kenangan.

Jejaki penggunaan memori untuk mengelakkan kebocoran dan mengoptimumkan prestasi.

const v8 = require('v8');

function getMemoryUsage() {
  const memoryUsage = process.memoryUsage();
  const heapStats = v8.getHeapStatistics();
  return {
    rss: memoryUsage.rss,
    heapTotal: memoryUsage.heapTotal,
    heapUsed: memoryUsage.heapUsed,
    external: memoryUsage.external,
    heapSizeLimit: heapStats.heap_size_limit
  };
}

3. Lag Gelung Acara

⏱️ Pastikan apl anda responsif.

Pantau kelewatan gelung acara untuk memastikan pelaksanaan operasi tak segerak berjalan lancar.

const lag = require('event-loop-lag');

const lagMonitor = lag(1000);

function getEventLoopLag() {
  return lagMonitor();
}

4. Kadar Permintaan HTTP

? Jejaki populariti apl anda.

Pantau kadar permintaan HTTP masuk untuk mengukur trafik dan merancang untuk penskalaan.

const http = require('http');

let requestCount = 0;

http.createServer((req, res) => {
  requestCount++;
  // Your server logic here
}).listen(3000);

function getRequestRate() {
  const rate = requestCount;
  requestCount = 0;
  return rate;
}

setInterval(() => {
  console.log(`Request rate: ${getRequestRate()} requests/second`);
}, 1000);

5. Kolam Sambungan Pangkalan Data

?‍♂️ Pastikan sambungan pangkalan data anda terkawal.

Pantau kumpulan sambungan anda untuk memastikan penggunaan sumber yang cekap.

const mysql = require('mysql');

const pool = mysql.createPool({
  connectionLimit: 10,
  host: 'localhost',
  user: 'your_username',
  password: 'your_password',
  database: 'your_database'
});

function getConnectionPoolStats() {
  return {
    total: pool._allConnections.length,
    free: pool._freeConnections.length,
    queued: pool._connectionQueue.length
  };
}

6. Metrik Kutipan Sampah

?️ Pastikan ingatan apl anda bersih.

Pantau kutipan sampah untuk mengoptimumkan pengurusan memori.

javascriptCopyconst v8 = require('v8');

const gcStats = v8.getHeapStatistics();

function getGCMetrics() {
  return {
    totalHeapSize: gcStats.total_heap_size,
    usedHeapSize: gcStats.used_heap_size,
    heapSizeLimit: gcStats.heap_size_limit
  };
}

7. Pengendalian dan Permintaan Aktif

? Jejaki operasi yang sedang berjalan.

Pantau pengendalian dan permintaan aktif untuk memastikan pengurusan sumber yang betul.

javascriptCopyfunction getActiveHandlesAndRequests() {
  return {
    activeHandles: process._getActiveHandles().length,
    activeRequests: process._getActiveRequests().length
  };
}

8. Kadar Ralat

❌ Ikuti perkembangan isu.

Pantau kadar ralat aplikasi anda untuk mengenal pasti dan menyelesaikan masalah dengan cepat.

javascriptCopylet errorCount = 0;

process.on('uncaughtException', (error) => {
  errorCount++;
  // Log or handle the error
});

function getErrorRate() {
  const rate = errorCount;
  errorCount = 0;
  return rate;
}

setInterval(() => {
  console.log(`Error rate: ${getErrorRate()} errors/minute`);
}, 60000);

9. Masa Tindak Balas

⏱️ Pastikan pengguna anda gembira.

Pantau masa tindak balas untuk memastikan pengalaman pengguna yang pantas.

javascriptCopyconst responseTime = require('response-time');
const express = require('express');

const app = express();

app.use(responseTime((req, res, time) => {
  console.log(`${req.method} ${req.url} - Response time: ${time}ms`);
}));

// Your routes here

10. Ketergantungan Perkhidmatan Pihak Ketiga

? Jangan biarkan perkhidmatan luar melambatkan anda.

Pantau prestasi perkhidmatan pihak ketiga yang bergantung pada apl anda.

javascriptCopyconst axios = require('axios');

async function checkExternalService(url) {
  const start = Date.now();
  try {
    await axios.get(url);
    const duration = Date.now() - start;
    console.log(`External service ${url} response time: ${duration}ms`);
  } catch (error) {
    console.error(`Error checking external service ${url}: ${error.message}`);
  }
}

// Check external services periodically
setInterval(() => {
  checkExternalService('https://api.example.com');
}, 60000);

Petua Bonus: Gunakan Alat Pemantauan

?️ Tajamkan pemantauan anda! Pertimbangkan untuk menggunakan alat pemantauan khusus untuk mengautomasikan pengumpulan metrik dan mendapatkan cerapan yang lebih mendalam.
Pilihan popular termasuk:

  • Prometheus dengan Grafana
  • Relik Baharu
  • Datadog
  • AppDynamics

Alat ini boleh menyediakan penyelesaian pemantauan di luar kotak dan papan pemuka yang cantik untuk menggambarkan prestasi aplikasi Node.js anda.
Dengan menggabungkan metrik dan petua tambahan ini, anda akan mendapat pandangan yang lebih komprehensif tentang kesihatan dan prestasi aplikasi Node.js anda. Ingat, kunci kepada pemantauan yang berkesan bukan hanya mengumpul data, tetapi juga memahami dan bertindak berdasarkan cerapan yang diberikannya. Selamat memantau!

Kesimpulan

Dengan memantau metrik penting ini, anda akan memperoleh cerapan berharga tentang prestasi dan kesihatan aplikasi Node.js anda. Ingat, pengetahuan adalah kuasa dan dengan metrik ini di hujung jari anda, anda akan dilengkapi dengan baik untuk mengoptimumkan apl anda dan memastikan apl itu berjalan lancar.

Jika anda memerlukan bantuan memantau apl anda, lihat https://alerty.ai untuk mengetahui lebih lanjut tentang pemantauan bahagian hadapan yang mudah.

Selamat memantau, dan semoga apl Node.js anda sentiasa menunjukkan prestasi terbaiknya! ?

Atas ialah kandungan terperinci Tingkatkan Pemantauan Node.js Anda dengan Metrik Penting Ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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