Javascript node.js http服务器如何获取连接数

Javascript node.js http服务器如何获取连接数,javascript,node.js,Javascript,Node.js,我使用node作为http服务器,代码如下: http.createServer(function(req, res) {}).listen(8181); 我正在寻找一种在同一进程中监视NodeJSHTTP服务器的简单方法。对我来说,拥有一个自己的函数就足够了,它只输出当前的资源使用情况和连接计数作为json。目前,我不需要深入测量或实时性能监控 节点http服务器的关键性能指标是什么?是否可以从节点获取这些指标?如果是,怎么做? 您对愚蠢的kpi的看法: 连接计数 CPU使用率 内存使用 只

我使用node作为http服务器,代码如下:

http.createServer(function(req, res) {}).listen(8181);
我正在寻找一种在同一进程中监视NodeJSHTTP服务器的简单方法。对我来说,拥有一个自己的函数就足够了,它只输出当前的资源使用情况和连接计数作为json。目前,我不需要深入测量或实时性能监控

节点http服务器的关键性能指标是什么?是否可以从节点获取这些指标?如果是,怎么做? 您对愚蠢的kpi的看法:

  • 连接计数
  • CPU使用率
  • 内存使用
  • 只需要知道我需要哪些变量/函数来获取数据


    谢谢你的帮助

    你需要这样的帮助:

    var count = 0;
    
    http.createServer(function(req, res) {
        count++;
        res.on('finish', function () {
            //setTimeout(function () {
            count--;
            //}, 60000);
        }).on('close', function () {
            count--;
        });
    }).listen(8181);
    
    使用
    setTimeout()
    可以在最近1分钟内获得活动连接

    有关CPU使用情况,请参阅


    有关内存使用情况,请参阅。您可以使用NodeJ的内置功能获取连接量。检查。下面举例说明如何使用它:

    var server = http.createServer(app);    
    
    server.getConnections(function(error, count) {
    
        console.log(count);
    
    });
    
    我希望这就是您想要的:)

    是我创建的日志模块

    您可以直接访问您的项目,获得CPUMemNet现成的+更多其他方便的标志和指标

    检查零件。

    使用:

    const scribbles = require('scribbles');
    
    scribbles.config({
       dataOut:console.log
    })
    
    setInterval(function(){
      scribbles.status();
    }, 5000);
    
    // This will give you a performance snapshot every 5 seconds.
    
    你会得到:

    • 网络:网络信息

      • 端口:正在侦听此端口
      • 连接数:当前建立的连接数
    • 状态:服务的状态。e、 g.“向上”、“阻塞”

    • cpu:cpu信息
      • cores:可用的Core数
      • 型号:处理器说明
      • 速度:兆赫频率速度
      • percUsed:以百分比形式加载进程
      • percFree:进程上可用的百分比
    • 系统信息
      • 启动时间:系统启动时
      • arch:平台架构。e、 g“x64”
      • 平台:操作系统平台
      • totalMem:正在使用的内存的总兆字节数
      • freeMem:可用内存的总兆字节数
      • usedMem:正在使用的内存的总兆字节数
    • 过程:
      • percUsedCpu:此进程使用的处理能力百分比
      • percFreeMem:此进程使用的内存百分比
      • usedMem:此进程使用的内存总字节数
      • 开始时间:流程开始的时间
      • pTitle:当前进程标题(即返回ps的当前值)
      • pid:进程的ID
      • ppid:当前父进程的ID
      • user:node启动节点的用户的名称
      • vNode:节点的版本

    是否存在连接超时回调?如何处理?现在我只需要知道我是否达到了连接限制。thx@micnic。帮了我很多忙。如果我实现http.setTimeout(时间,回调)。如何关闭http套接字?@Manuel,没有
    http.setTimeout(time,callback)
    ,使用通常的
    setTimeout(callback,timeout)
    并在回调函数中只添加计数器变量,而这背后的意图是好的,在现实世界中,最好在集群中安装Prometheus+Grafana,然后使用Epimetheus npm包来scape Express特定的度量(并为CPU/RAM使用刮取有关节点和吊舱的常规Kubernetes信息)。在这种情况下,这只是一个具有零配置的插入式模块,如果这对某些人有效,那很好。除此之外,我们欢迎他们按照您的建议投入时间来制作更全面的测井系统。这完全取决于一个人想要实现什么样的体系结构,以及在什么级别上应该提供什么样的服务,以及他们喜欢什么样的职责。