首頁  >  文章  >  web前端  >  使用這些基本指標提升 Node.js 監控水平

使用這些基本指標提升 Node.js 監控水平

WBOY
WBOY原創
2024-08-09 07:15:42529瀏覽

Level Up Your Node.js Monitoring with These Essential Metrics

身為 Node.js 開發人員,保持應用程式順利運作至關重要。但你怎麼知道幕後發生了什麼事?這就是指標的用武之地。在本文中,我們將探討一些關鍵指標,這些指標將幫助您像專業人士一樣監控和優化 Node.js 應用程式。

要了解更多信息,您可以查看完整的部落格文章。

1.CPU使用率

?保持應用程式的大腦健康。

監控 CPU 使用情況以確保您的應用程式本身不會過度工作。

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. 記憶體使用情況

?不要讓您的應用程式成為記憶體消耗者。

追蹤記憶體使用情況以防止洩漏並優化效能。

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. 事件循環延遲

⏱️ 讓您的應用程式保持回應能力。

監控事件循環滯後,確保非同步操作順利執行。

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

const lagMonitor = lag(1000);

function getEventLoopLag() {
  return lagMonitor();
}

4.HTTP請求率

?追蹤您的應用程式的受歡迎程度。

監控傳入 HTTP 請求的速率,以衡量流量並規劃擴展。

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. 資料庫連線池

?‍♂️ 檢查您的資料庫連線。

監控您的連線池以確保高效率的資源利用。

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. 垃圾收集指標

? ️ 保持應用程式的記憶體乾淨。

監控垃圾收集以最佳化記憶體管理。

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. 主動句柄和請求

?追蹤正在進行的操作。

監控活動句柄和請求以確保正確的資源管理。

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

8. 錯誤率

❌ 掌控問題。

監控應用程式的錯誤率,以快速識別和解決問題。

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. 回應時間

⏱️ 讓您的用戶滿意。

監控回應時間以確保快速的使用者體驗。

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. 第三方服務依賴

?不要讓外部服務拖慢您的速度。

監控您的應用程式所依賴的第三方服務的效能。

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);

額外提示:使用監控工具

? ️ 增強您的監控能力!考慮使用專用監控工具來自動收集指標並獲得更深入的見解。
受歡迎的選項包括:

  • 普羅米修斯與 Grafana
  • 新遺物
  • 資料狗
  • 應用動態

這些工具可以提供開箱即用的監控解決方案和漂亮的儀表板,以視覺化 Node.js 應用程式的效能。
透過合併這些額外的指標和技巧,您將可以更全面地了解 Node.js 應用程式的運作狀況和效能。請記住,有效監控的關鍵不僅是收集數據,還在於理解數據提供的見解並採取行動。監控愉快!

結論

透過監控這些基本指標,您將獲得有關 Node.js 應用程式效能和運行狀況的寶貴見解。請記住,知識就是力量,有了這些觸手可及的指標,您將有能力優化您的應用程式並保持其平穩運行。

如果您需要協助監控您的應用程序,請查看 https://alerty.ai 以了解有關簡單前端監控的更多資訊。

祝您監控愉快,並祝您的 Node.js 應用程式始終保持最佳效能! ?

以上是使用這些基本指標提升 Node.js 監控水平的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn