stats.js 832 B

12345678910111213141516171819202122232425262728
  1. function start () {
  2. function onTime () {
  3. stats.time = (new Date()).toUTCString()
  4. }
  5. const stats = { conn: 0, qps: 0, rps: 0, time: 0 }
  6. just.setInterval(() => {
  7. if (just.buffer) {
  8. u32 = new Uint32Array(just.buffer)
  9. }
  10. if (u32) {
  11. Atomics.exchange(u32, 0, stats.rps)
  12. } else {
  13. const { conn, qps, rps, clients } = stats
  14. const { user, system } = just.cpuUsage()
  15. const { rss } = just.memoryUsage()
  16. const rpspc = ((rps / (user + system)) || 0)
  17. just.error(`conn ${conn} qps ${qps} rps ${rps} clients ${clients} mem ${rss} cpu (${user.toFixed(2)}/${system.toFixed(2)}) ${(user + system).toFixed(2)} rps/core ${rpspc.toFixed(2)}`)
  18. }
  19. stats.qps = stats.rps = 0
  20. }, 1000)
  21. just.setInterval(onTime, 100)
  22. onTime()
  23. return stats
  24. }
  25. let u32
  26. module.exports = { start }