Notifier plugin
The Notifier Plugin provides multi-channel notification capabilities for InfluxDB 3, enabling real-time alert delivery through various communication channels. Send notifications via Slack, Discord, HTTP webhooks, SMS, or WhatsApp based on incoming HTTP requests. Acts as a centralized notification dispatcher that receives data from other plugins or external systems and routes notifications to the appropriate channels.
Configuration
Request body parameters
Parameter | Type | Default | Description |
---|---|---|---|
notification_text | string | required | Text content of the notification message |
senders_config | object | required | Configuration for each notification channel |
Sender-specific configuration
The senders_config
parameter accepts channel configurations where keys are sender names and values contain channel-specific settings:
Slack notifications
Parameter | Type | Default | Description |
---|---|---|---|
slack_webhook_url | string | required | Slack webhook URL |
slack_headers | string | none | Base64-encoded JSON headers |
Discord notifications
Parameter | Type | Default | Description |
---|---|---|---|
discord_webhook_url | string | required | Discord webhook URL |
discord_headers | string | none | Base64-encoded JSON headers |
HTTP webhook notifications
Parameter | Type | Default | Description |
---|---|---|---|
http_webhook_url | string | required | Custom webhook URL for HTTP POST |
http_headers | string | none | Base64-encoded JSON headers |
SMS notifications (via Twilio)
Parameter | Type | Default | Description |
---|---|---|---|
twilio_sid | string | required | Twilio Account SID (or use TWILIO_SID env var) |
twilio_token | string | required | Twilio Auth Token (or use TWILIO_TOKEN env var) |
twilio_from_number | string | required | Sender phone number in E.164 format |
twilio_to_number | string | required | Recipient phone number in E.164 format |
WhatsApp notifications (via Twilio)
Parameter | Type | Default | Description |
---|---|---|---|
twilio_sid | string | required | Twilio Account SID (or use TWILIO_SID env var) |
twilio_token | string | required | Twilio Auth Token (or use TWILIO_TOKEN env var) |
twilio_from_number | string | required | Sender WhatsApp number in E.164 format |
twilio_to_number | string | required | Recipient WhatsApp number in E.164 format |
Installation
Start InfluxDB 3 Core with the Processing Engine enabled (
--plugin-dir /path/to/plugins
)Install required Python packages:
httpx
(for HTTP requests)twilio
(for SMS and WhatsApp notifications)
influxdb3 install package httpx influxdb3 install package twilio
Create trigger
Create an HTTP trigger to handle notification requests:
influxdb3 create trigger \
--database mydb \
--plugin-filename notifier_plugin.py \
--trigger-spec "request:notify" \
notification_trigger
This registers an HTTP endpoint at /api/v3/engine/notify
.
Enable trigger
influxdb3 enable trigger --database mydb notification_trigger
Examples
Slack notification
Send a notification to Slack:
curl -X POST http://localhost:8181/api/v3/engine/notify \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"notification_text": "Database alert: High CPU usage detected",
"senders_config": {
"slack": {
"slack_webhook_url": "https://hooks.slack.com/services/..."
}
}
}'
SMS notification
Send an SMS via Twilio:
curl -X POST http://localhost:8181/api/v3/engine/notify \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"notification_text": "Critical alert: System down",
"senders_config": {
"sms": {
"twilio_from_number": "+1234567890",
"twilio_to_number": "+0987654321"
}
}
}'
Multi-channel notification
Send notifications via multiple channels simultaneously:
curl -X POST http://localhost:8181/api/v3/engine/notify \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"notification_text": "Performance warning: Memory usage above threshold",
"senders_config": {
"slack": {
"slack_webhook_url": "https://hooks.slack.com/services/..."
},
"discord": {
"discord_webhook_url": "https://discord.com/api/webhooks/..."
},
"whatsapp": {
"twilio_from_number": "+1234567890",
"twilio_to_number": "+0987654321"
}
}
}'
Features
- Multi-channel delivery: Support for Slack, Discord, HTTP webhooks, SMS, and WhatsApp
- Retry logic: Automatic retry with exponential backoff for failed notifications
- Environment variables: Credential management via environment variables
- Asynchronous processing: Non-blocking HTTP notifications for better performance
- Flexible configuration: Channel-specific settings and optional headers support
Troubleshooting
Common issues
Notification not delivered
- Verify webhook URLs are correct and accessible
- Check Twilio credentials and phone number formats
- Review logs for specific error messages
Authentication errors
- Ensure Twilio credentials are set via environment variables or request parameters
- Verify webhook URLs have proper authentication if required
Rate limiting
- Plugin includes built-in retry logic with exponential backoff
- Consider implementing client-side rate limiting for high-frequency notifications
Environment variables
For security, set Twilio credentials as environment variables:
export TWILIO_SID=your_account_sid
export TWILIO_TOKEN=your_auth_token
Viewing logs
Check processing logs in the InfluxDB system tables:
influxdb3 query --database _internal "SELECT * FROM system.processing_engine_logs WHERE message LIKE '%notifier%' ORDER BY time DESC LIMIT 10"
Report an issue
For plugin issues, see the Plugins repository issues page.
Find support for InfluxDB 3 Core
The InfluxDB Discord server is the best place to find support for InfluxDB 3 Core. For other InfluxDB versions, see the Support and feedback options.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB 3 Core and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.