UNPKG

pm2-slack-monitor

Version:

A CLI tool to monitor PM2 processes and send error logs to individual Slack channels via webhook.

56 lines (45 loc) 1.68 kB
#!/usr/bin/env node const { Command } = require('commander'); const monitor = require('./src/monitor'); const config = require('./src/config'); const pkg = require('./package.json'); // To pull version from package.json const program = new Command(); program .name('my-monitor') .description('🛠️ Terminal-based utility to monitor PM2 processes and send Slack alerts.') .version(pkg.version); // Enables `--version` // `my-monitor start` program .command('start') .description('Start monitoring all registered PM2 processes') .action(monitor.start); // `my-monitor add <processName> <slackWebhook>` program .command('add <processName> <slackWebhook>') .description('Add a PM2 process and assign a Slack webhook') .action(config.addProcess); // `my-monitor remove <processName>` program .command('remove <processName>') .description('Remove a process from monitoring') .action(config.removeProcess); // (Optional) List all monitored processes program .command('list') .description('List all monitored processes with their Slack webhooks') .action(() => { const data = config.getProcessesWithWebhooks?.(); if (!data || Object.keys(data).length === 0) { console.log('No processes are currently monitored.'); return; } console.table(data); }); // update slackwebhookurl for a monitored process program .command('update <processName> <webhookUrl>') .description('Update Slack webhook for a monitored process') .action((processName, webhookUrl) => { config.updateProcess(processName, webhookUrl); }); program.parse(process.argv);