Server : Apache/2.4.52 (Ubuntu) System : Linux srv913213 5.15.0-179-generic #189-Ubuntu SMP Tue May 5 18:20:56 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/node_modules/pm2/node_modules/tx2/src/ |
const Events = require('./events.js')
const Actions = require('./actions.js')
const Metrics = require('./metrics.js')
const Issues = require('./issues.js')
const EventEmitter = require('events')
const stringify = require('json-stringify-safe')
/**
* @namespace TX2
* @class TX2
*/
class TX2 extends EventEmitter {
constructor() {
super()
Object.assign(this, Events)
Object.assign(this, Actions)
Object.assign(this, Metrics)
Object.assign(this, Issues)
var p_interval = setInterval(() => {
this.send({
type : 'axm:monitor',
data : Metrics.prepareData()
})
}, 990)
p_interval.unref()
}
/**
* Send JSON to PM2
* @private
* @param {object} args
*/
send(args) {
this.emit('data', args)
if (!process.send) {
var output = args.data
delete output.__name
return false
}
try {
process.send(JSON.parse(stringify(args)))
} catch(e) {
console.error('Process disconnected from parent !')
console.error(e.stack || e)
process.exit(1)
}
}
}
module.exports = TX2