溫馨提示×

Node.js日志中如何識別慢請求

小樊
36
2025-04-06 09:18:49
欄目: 編程語言

在Node.js中,識別慢請求通常是通過監控請求處理時間來實現的。你可以使用中間件來記錄每個請求的處理時間,并根據需要設置閾值來識別慢請求。以下是一個使用Express框架的示例:

  1. 首先,安裝Express框架(如果尚未安裝):
npm install express
  1. 創建一個名為app.js的文件,并添加以下代碼:
const express = require('express');
const app = express();
const port = 3000;

// 中間件:記錄請求處理時間
app.use((req, res, next) => {
  const start = Date.now();
  res.on('finish', () => {
    const duration = Date.now() - start;
    console.log(`${req.method} ${req.url} - ${duration}ms`);
  });
  next();
});

// 示例路由
app.get('/', (req, res) => {
  setTimeout(() => {
    res.send('Hello World!');
  }, 500); // 延遲500毫秒響應
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

在這個示例中,我們創建了一個中間件來記錄每個請求的處理時間。當請求完成時(res.on('finish')事件觸發),我們計算處理時間并將其輸出到控制臺。

  1. 運行你的Node.js應用:
node app.js
  1. 訪問http://localhost:3000,查看控制臺輸出。你應該看到類似以下的日志:
GET / - 505ms

這表示請求的處理時間為505毫秒。你可以根據需要設置閾值來識別慢請求。例如,如果你認為超過100毫秒的請求就是慢請求,可以在中間件中添加以下代碼:

app.use((req, res, next) => {
  const start = Date.now();
  res.on('finish', () => {
    const duration = Date.now() - start;
    if (duration > 100) {
      console.log(`Slow request: ${req.method} ${req.url} - ${duration}ms`);
    }
    next();
  });
});

現在,只有處理時間超過100毫秒的請求才會被記錄為慢請求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女