Node.js 如何在Hapi服务器上记录服务器负载

Node.js 如何在Hapi服务器上记录服务器负载,node.js,hapijs,Node.js,Hapijs,我了解了如何设置Hapi服务器来监视Node.js事件循环中的延迟 但我希望在每次延迟超过阈值时都记录日志,而不是返回503 我怎么做呢 根据,服务器实例中有一个“load”属性,其中包含我想要的信息,但我不知道如何侦听在检查加载时触发的事件(或者是否存在此类事件) 更新: 好的,我发现有一个“日志”事件,“当服务器因高负载拒绝请求时”会触发。 但是我只想登录,我不想拒绝任何请求,所以这并不能解决问题 到目前为止,当请求被拒绝时,我会记录以下内容: server.on('log', (event

我了解了如何设置Hapi服务器来监视Node.js事件循环中的延迟

但我希望在每次延迟超过阈值时都记录日志,而不是返回503

我怎么做呢

根据,服务器实例中有一个“load”属性,其中包含我想要的信息,但我不知道如何侦听在检查加载时触发的事件(或者是否存在此类事件)

更新

好的,我发现有一个“日志”事件,“当服务器因高负载拒绝请求时”会触发。
但是我只想登录,我不想拒绝任何请求,所以这并不能解决问题

到目前为止,当请求被拒绝时,我会记录以下内容:

server.on('log', (event) => {
  if (event.tags && event.tags.indexOf('load') > -1) {
    console.error(`Event loop lag detected! Latency: ${event.data.eventLoopDelay} ms`);
  }
});

我找到了一个目前有效的解决方案,使用,但我很高兴知道是否可以只使用Hapi

如果它对某人有帮助,我所做的是禁用Hapi中的监视,并让只有节点Too忙于检查它:

import toobusy from 'node-toobusy'

toobusy.maxLag(1000);
toobusy.onLag(currentLag => {
  logger.error(`Event loop lag detected! Latency: ${currentLag} ms`);
});

这样,就不会阻止任何请求,我只需要记录日志,正如我所希望的那样。

我找到了一个现在可以使用的解决方案,但我很高兴知道是否可以仅使用Hapi来实现此目的

如果它对某人有帮助,我所做的是禁用Hapi中的监视,并让只有节点Too忙于检查它:

import toobusy from 'node-toobusy'

toobusy.maxLag(1000);
toobusy.onLag(currentLag => {
  logger.error(`Event loop lag detected! Latency: ${currentLag} ms`);
});
这样就不会阻止任何请求,我只需要记录日志,正如我所希望的那样