通知插件
通知器插件为 InfluxDB 3 提供了多通道通知功能,能够通过各种通信渠道实时传递警报。根据传入的 HTTP 请求,通过 Slack、Discord、HTTP Webhook、SMS 或 WhatsApp 发送通知。它作为一个集中的通知分发器,接收来自其他插件或外部系统的数据,并将通知路由到相应的通道。
配置
请求体参数
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
notification_text | string | 必需 | 通知消息的文本内容 |
senders_config | object | 必需 | 每个通知通道的配置 |
特定发送者的配置
senders_config 参数接受通道配置,其中键是发送者名称,值包含特定于通道的设置。
Slack 通知
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
slack_webhook_url | string | 必需 | Slack Webhook URL |
slack_headers | string | none | Base64 编码的 JSON 标头 |
Discord 通知
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
discord_webhook_url | string | 必需 | Discord Webhook URL |
discord_headers | string | none | Base64 编码的 JSON 标头 |
HTTP Webhook 通知
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
http_webhook_url | string | 必需 | 用于 HTTP POST 的自定义 Webhook URL |
http_headers | string | none | Base64 编码的 JSON 标头 |
SMS 通知(通过 Twilio)
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
twilio_sid | string | 必需 | Twilio 账户 SID(或使用 TWILIO_SID 环境变量) |
twilio_token | string | 必需 | Twilio Auth Token(或使用 TWILIO_TOKEN 环境变量) |
twilio_from_number | string | 必需 | 发件人电话号码(E.164 格式) |
twilio_to_number | string | 必需 | 收件人电话号码(E.164 格式) |
WhatsApp 通知(通过 Twilio)
| 参数 | 类型 | 默认 | 描述 |
|---|---|---|---|
twilio_sid | string | 必需 | Twilio 账户 SID(或使用 TWILIO_SID 环境变量) |
twilio_token | string | 必需 | Twilio Auth Token(或使用 TWILIO_TOKEN 环境变量) |
twilio_from_number | string | 必需 | 发件人 WhatsApp 号码(E.164 格式) |
twilio_to_number | string | 必需 | 收件人 WhatsApp 号码(E.164 格式) |
安装
启用处理引擎来启动 InfluxDB 3 核心(
--plugin-dir /path/to/plugins)安装必需的 Python 包
httpx(用于 HTTP 请求)twilio(用于 SMS 和 WhatsApp 通知)
influxdb3 install package httpx influxdb3 install package twilio
创建触发器
创建 HTTP 触发器以处理通知请求。
influxdb3 create trigger \
--database mydb \
--plugin-filename notifier_plugin.py \
--trigger-spec "request:notify" \
notification_trigger这将注册一个 HTTP 端点 /api/v3/engine/notify。
启用触发器
influxdb3 enable trigger --database mydb notification_trigger示例
Slack 通知
向 Slack 发送通知。
curl -X POST https://: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 通知
通过 Twilio 发送 SMS。
curl -X POST https://: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"
}
}
}'多通道通知
同时通过多个通道发送通知。
curl -X POST https://: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"
}
}
}'新功能
- 多通道交付:支持 Slack、Discord、HTTP Webhook、SMS 和 WhatsApp。
- 重试逻辑:失败通知的自动重试(指数退避)。
- 环境变量:通过环境变量进行凭证管理。
- 异步处理:非阻塞 HTTP 通知,以获得更好的性能。
- 灵活配置:支持通道特定设置和可选标头。
故障排除
常见问题
通知未送达
- 验证 Webhook URL 是否正确且可访问。
- 检查 Twilio 凭证和电话号码格式。
- 查看日志以获取特定的错误消息。
身份验证错误
- 确保 Twilio 凭证通过环境变量或请求参数设置。
- 如果需要,验证 Webhook URL 是否具有适当的身份验证。
速率限制
- 插件包含内置的指数退避重试逻辑。
- 考虑为高频通知实施客户端速率限制。
环境变量
为安全起见,将 Twilio 凭证设置为环境变量。
export TWILIO_SID=your_account_sid
export TWILIO_TOKEN=your_auth_token查看日志
在 InfluxDB 系统表中检查处理日志。
influxdb3 query --database _internal "SELECT * FROM system.processing_engine_logs WHERE message LIKE '%notifier%' ORDER BY time DESC LIMIT 10"报告问题
有关插件问题,请参阅插件存储库的 issues 页面。
查找 InfluxDB 3 Core 的支持
InfluxDB Discord 服务器 InfluxDB Discord server 是获取 InfluxDB 3 Core 支持的最佳场所。对于其他 InfluxDB 版本,请参阅 支持和反馈 选项。
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。