event_loop.coffee 467 B

123456789101112131415161718
  1. seconds = 1000
  2. module.exports = EventLoopMonitor =
  3. monitor: (logger) ->
  4. interval = setInterval () ->
  5. EventLoopMonitor.Delay()
  6. , 1 * seconds
  7. Metrics = require "./metrics"
  8. Metrics.registerDestructor () ->
  9. clearInterval(interval)
  10. Delay: () ->
  11. Metrics = require "./metrics"
  12. t1 = process.hrtime()
  13. setImmediate () ->
  14. delta = process.hrtime(t1)
  15. responseTime = delta[0]*1e6 + delta[1]*1e-3
  16. Metrics.timing("event-loop-microsec", responseTime)