繁体   English   中英

如何获取执行时间,总计数,ip 在nodejs api中命中的地址

[英]how to get execution time, total count, ip address who hit it in nodejs api

基本上我想要做的是获得一个特定的端点上次执行时间,今天执行的总次数 api 和每台机器的 ip 地址命中 api 和每次 api 命中的应用程序响应时间。 如何在 nodeJS 中实现这一点? 基本上就是rest api审计系统。

这里本身没有任何与 Node 相关的内容,您可以在某处记录每个请求和所需的详细信息(即普通数据库)。 创建一个包含所有 API 端点(client -> middleware -> api endpoint function)的中间件可能很方便,其中包含此逻辑。

由于您使用的是 NodeJS,因此您可以创建一个回调机制来测量响应时间,即您的中间件可以向 API 端点控制器提供回调 function,controller 在向用户发送响应时调用该回调(在res.send()如果你使用的是 Express)。

我可以回答您的一些问题:-

IP -> IP 命中 api 的机器地址存在于请求 object req.connection.remoteAddress in expressjs(如果您的请求是通过像 Akamai 这样的代理路由的,则可能不正确,在这种情况下打开 True-在 akamai 中的客户端 IP header)

计数 -> 每次请求特定端点时进行数据库写入。 只需将其放在您的入口点函数 (api) 发送响应之前即可。

响应时间 api - 只需将其放在入口点 function 的开始和结束处。开始时:- let start = process.hrtime();

在 api 发送响应之前:- endTime = process.hrtime(start); endTime = Math.round(((endTime[0] * 1000) + (endTime[1] / 1000000)));

也许你可以将它包装在 function 中。它会给你以毫秒为单位的经过时间,你也可以将它存储在每次迭代的某个地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM