A PM2 module that sends formatted Slack notifications for process events like start
, stope
, restart
and more — with support for clustering, user mentions, resource usage, and per-app webhook overrides.
- Detects
online
,exit
,stopped
,errored
,disconnected
... events - Smart event debouncing (no duplicate messages)
- Includes uptime, memory, and CPU stats
- Supports Slack user mentions
- Per-app Slack Webhook URL overrides
- Cluster-aware PID tracking
pm2 install pm2-slack-alerts
Set the default Slack webhook URL:
pm2 set pm2-slack-alerts:PM2_SLACK_URL https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ
To tag users in Slack messages:
pm2 set pm2-slack-alerts:PM2_SLACK_MENTIONS "U01234567,U07654321"
🔎 How to Find Slack User IDs
- Click on the user’s profile in Slack
- In the top right corner of the profile pop-up, click the vertical three dots (︙)
- Select “Copy member ID” from the dropdown
- Paste the ID into your config (e.g., U01234567)
This will automatically convert to
<@U01234567> <@U07654321>
format in messages.
You can override the global webhook for a specific app.
If your app is named important-project
, use:
pm2 set pm2-slack-alerts:PM2_SLACK_URL_IMPORTANT_PROJECT https://hooks.slack.com/services/XXXXX/YYYYY/ZZZZZ
App names are transformed to uppercase and dashes are replaced with underscores.
Only receive notifications from specific apps:
pm2 set pm2-slack-alerts:PM2_SLACK_FILTER api-service,worker
- Case-sensitive.
- If unset, all PM2 apps will be monitored.
- Useful for large PM2 environments with many apps.
Control which PM2 events send Slack notifications:
pm2 set pm2-slack-alerts:PM2_SLACK_EVENTS restart,errored,exit
- If unset, only the following essential events are enabled by default:
online
exit
stopped
errored
disconnected
- To enable additional events like
log
,error
, orkill
, explicitly define them inPM2_SLACK_EVENTS
. - If unset, all supported PM2 events will trigger a Slack notification.
- Common events: start, stop, restart, exit, online, errored, disconnected
The following PM2 events are supported and can be filtered using the PM2_SLACK_EVENTS
environment variable:
online
exit
stopped
errored
disconnected
log
error
kill
exception
reload
delete
restart overlimit
Each message includes:
- Event emoji
- Hostname
- App name
- Event type
- Mode (
cluster
orfork
) - PID list
- Uptime, Memory, CPU
- Mentions (if defined)
🚀 SERVER STATUS UPDATED 🚀
━━━━━━━━━━━━━━━━━━━━━━━━━━
IMPORTANT_PROJECT → STARTED
🕒 Time : 2025-04-15 14:03:22
🖥 Host : dev-machine.local
📌 Event : started
📊 Mode : cluster
📈 Uptime : 22s
💾 Memory : 48.12 MB
⚙️ CPU : 1%
🧩 PIDs : 4 instances (0, 1, 2, 3)
👥 Mentions : <@U01234567> <@U07654321>
- We welcome contributions! Please read our Contributing Guide for details on how to get started.
MIT