docs-v2/content/shared/influxdb3-plugins/plugins-library/official/notifier.md

6.5 KiB

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

  1. Start {{% product-name %}} with the Processing Engine enabled (--plugin-dir /path/to/plugins)

  2. 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 {{% product-name %}}

The InfluxDB Discord server is the best place to find support for {{% product-name %}}. For other InfluxDB versions, see the Support and feedback options.