ubuntu

如何通过Ubuntu Node.js日志监控API响应时间

小樊
48
2025-10-15 18:29:55
栏目: 编程语言

要在Ubuntu上使用Node.js监控API响应时间,您可以使用以下方法:

  1. 使用内置的HTTP模块创建一个简单的代理服务器:

首先,创建一个名为proxy-server.js的文件,并在其中输入以下代码:

const http = require('http');
const url = require('url');

const targetUrl = 'http://your-api-url.com'; // 替换为您的API URL

const proxy = http.createServer((req, res) => {
  const startTime = Date.now();

  req.pipe(http.request(targetUrl, (response) => {
    response.pipe(res);

    response.on('end', () => {
      const endTime = Date.now();
      const duration = endTime - startTime;
      console.log(`API响应时间: ${duration}ms`);
    });
  })).on('error', (error) => {
    console.error(`请求错误: ${error.message}`);
  });
});

proxy.listen(3000, () => {
  console.log('代理服务器正在监听端口3000');
});

your-api-url.com替换为您要监控的API的URL。然后,在终端中运行以下命令启动代理服务器:

node proxy-server.js

现在,当您访问http://localhost:3000时,代理服务器会将请求转发到您的API,并在控制台中显示响应时间。

  1. 使用第三方库(如expresshttp-proxy-middleware)创建一个更高级的代理服务器:

首先,确保您已经安装了Node.js和npm。然后,在项目目录中运行以下命令安装所需的库:

npm init -y
npm install express http-proxy-middleware

接下来,创建一个名为proxy-server.js的文件,并在其中输入以下代码:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();
const targetUrl = 'http://your-api-url.com'; // 替换为您的API URL

app.use('/api', createProxyMiddleware({
  target: targetUrl,
  changeOrigin: true,
  onProxyReq: (proxyReq, req, res) => {
    proxyReq.setHeader('X-Start-Time', Date.now());
  },
}));

app.use((req, res) => {
  const startTime = req.headers['x-start-time'];
  const endTime = Date.now();
  const duration = endTime - startTime;
  console.log(`API响应时间: ${duration}ms`);
  res.status(404).send('API代理');
});

app.listen(3000, () => {
  console.log('代理服务器正在监听端口3000');
});

your-api-url.com替换为您要监控的API的URL。然后,在终端中运行以下命令启动代理服务器:

node proxy-server.js

现在,当您访问http://localhost:3000/api时,代理服务器会将请求转发到您的API,并在控制台中显示响应时间。

这些方法可以帮助您监控API响应时间。如果您需要更高级的功能,可以考虑使用专门的API监控工具,如New Relic或Datadog。

0
看了该问题的人还看了