文档文档

状态变更插件

状态变更插件为 InfluxDB 3 数据流提供了全面的字段监控和阈值检测。检测字段值变化,监控阈值条件,并在满足指定标准时触发通知。支持预定的批量监控和实时数据写入监控,并具有可配置的稳定性检查和多通道警报。

配置

计划触发器参数

参数类型默认描述
measurementstring必需用于监控字段变更的测量值
field_change_countstring必需点分隔的字段阈值(例如,"temp:3.load:2"
sendersstring必需点分隔的通知通道
windowstring必需用于分析的时间窗口。格式:<数字><单位>

数据写入触发器参数

参数类型默认描述
measurementstring必需用于监控阈值条件的测量值
field_thresholdsstring必需阈值条件(例如,"temp:30:10@status:ok:1h"
sendersstring必需点分隔的通知通道

通知参数

参数类型默认描述
influxdb3_auth_tokenstringenv varInfluxDB 3 API 令牌
notification_textstringtemplate用于预定通知的消息模板
notification_count_textstringtemplate用于基于计数通知的消息模板
notification_time_textstringtemplate用于基于时间通知的消息模板
notification_pathstring“notify”通知终结点路径
port_override数字8181InfluxDB 端口覆盖

高级参数

参数类型默认描述
state_change_window数字1用于检查稳定性的最近值
state_change_count数字1稳定性窗口内允许的最大变更次数
config_file_pathstringnone相对于 PLUGIN_DIR 的 TOML 配置文件路径

特定于通道的配置

通知通道需要基于发件人类型的额外参数(与 Notifier Plugin 相同)。

架构要求

该插件假定表架构已在数据库中定义,因为它依赖于此架构来检索处理所需的字段和标签名称。

需要现有架构

根据设计,如果架构不存在或不包含预期的列,则插件会返回错误。

TOML 配置

参数类型默认描述
config_file_pathstringnone相对于 PLUGIN_DIR 的 TOML 配置文件路径 (TOML 配置必需)

要使用 TOML 配置文件,请设置 PLUGIN_DIR 环境变量并在触发器参数中指定 config_file_path 这与启动 InfluxDB 3 时的 --plugin-dir 标志是附加的。

提供了示例 TOML 配置文件

有关使用 TOML 配置文件,请参阅 influxdb3_plugins /README.md 中的“使用 TOML 配置文件”部分。

安装

  1. 启用处理引擎来启动 InfluxDB 3 核心(--plugin-dir /path/to/plugins

  2. 安装必需的 Python 包

    • requests(用于 HTTP 请求)
    influxdb3 install package requests

创建计划触发器

为定期间隔的字段变更监控创建触发器

influxdb3 create trigger \
  --database mydb \
  --plugin-filename state_change_check_plugin.py \
  --trigger-spec "every:10m" \
  --trigger-arguments "measurement=cpu,field_change_count=temp:3.load:2,window=10m,senders=slack,slack_webhook_url=https://hooks.slack.com/services/..." \
  state_change_scheduler

创建数据写入触发器

为实时阈值监控创建触发器

influxdb3 create trigger \
  --database mydb \
  --plugin-filename state_change_check_plugin.py \
  --trigger-spec "all_tables" \
  --trigger-arguments "measurement=cpu,field_thresholds=temp:30:10@status:ok:1h,senders=slack,slack_webhook_url=https://hooks.slack.com/services/..." \
  state_change_datawrite

启用触发器

influxdb3 enable trigger --database mydb state_change_scheduler
influxdb3 enable trigger --database mydb state_change_datawrite

示例

预定的字段变更监控

监控时间窗口内的字段变更并在超出阈值时发出警报

influxdb3 create trigger \
  --database sensors \
  --plugin-filename state_change_check_plugin.py \
  --trigger-spec "every:15m" \
  --trigger-arguments "measurement=temperature,field_change_count=value:5,window=1h,senders=slack,slack_webhook_url=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX,notification_text=Temperature sensor $field changed $changes times in $window for tags $tags" \
  temp_change_monitor

实时阈值检测

监控数据写入的阈值条件

influxdb3 create trigger \
  --database monitoring \
  --plugin-filename state_change_check_plugin.py \
  --trigger-spec "all_tables" \
  --trigger-arguments "measurement=system_metrics,field_thresholds=cpu_usage:80:5@memory_usage:90:10min,senders=discord,discord_webhook_url=https://discord.com/api/webhooks/..." \
  system_threshold_monitor

多条件监控

监控具有不同阈值类型的多个字段

influxdb3 create trigger \
  --database application \
  --plugin-filename state_change_check_plugin.py \
  --trigger-spec "all_tables" \
  --trigger-arguments "measurement=app_health,field_thresholds=error_rate:0.05:3@response_time:500:30s@status:down:1,senders=slack.sms,slack_webhook_url=https://hooks.slack.com/services/...,twilio_from_number=+1234567890,twilio_to_number=+0987654321" \
  app_health_monitor

新功能

  • 双重监控模式:预定的批量监控和实时数据写入监控
  • 灵活的阈值:支持基于计数和基于持续时间条件的监控
  • 稳定性检查:可配置的状态变更检测以减少噪声
  • 多通道警报:与 Slack、Discord、HTTP、SMS 和 WhatsApp 集成
  • 模板通知:具有动态变量的可自定义消息模板
  • 缓存优化:测量值和标签名称缓存以提高性能
  • 环境变量支持:通过环境变量进行凭据管理

故障排除

常见问题

未触发通知

  • 验证通知通道配置(Webhook URL、凭据)
  • 检查阈值是否适合您的数据
  • 确保 Notifier Plugin 已安装并配置正确
  • 检查插件日志以获取错误消息

通知过多

  • 调整 state_change_windowstate_change_count 以进行稳定性过滤
  • 提高阈值以降低灵敏度
  • 考虑为预定触发器使用更长的时间窗口

身份验证错误

  • 设置 INFLUXDB3_AUTH_TOKEN 环境变量
  • 验证令牌是否具有适当的数据库权限
  • 检查 Twilio 凭据是否正确用于 SMS/WhatsApp 通知

字段阈值格式

基于计数的阈值

  • 格式:field_name:"value":count
  • 示例:temp:"30.5":10(温度为 30.5 的 10 次出现)

基于时间的阈值

  • 格式:field_name:"value":duration
  • 示例:status:"error":5min(状态为“error”持续 5 分钟)
  • 支持的单位:sminhdw

多个条件

  • @ 分隔:temp:"30":5@humidity:"high":10min

消息模板变量

预定通知

  • $table:测量值名称
  • $field:字段名称
  • $changes:检测到的变更次数
  • $window:时间窗口
  • $tags:标签值

数据写入通知

  • $table:测量值名称
  • $field:字段名称
  • $value:阈值
  • $duration:持续时间或计数
  • $row:唯一行标识符

报告问题

有关插件问题,请参阅插件存储库的 issues 页面

查找 InfluxDB 3 Core 的支持

InfluxDB Discord 服务器 InfluxDB Discord server 是获取 InfluxDB 3 Core 支持的最佳场所。对于其他 InfluxDB 版本,请参阅 支持和反馈 选项。


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2