文档文档

阈值死信检查插件

阈值死人检查插件为 InfluxDB 3 中的时间序列数据提供了全面的监控功能,结合了实时阈值检测和死人监控。它允许您根据可配置的阈值监控字段值,检测数据缺失模式,并根据聚合指标触发多级警报。该插件同时支持计划批处理监控和实时数据写入监控,并提供可配置的触发器计数和严重性级别。

配置

计划触发器参数

参数类型默认描述
measurementstring必需要监控的测量值
sendersstring必需点分隔的通知通道
windowstring必需用于数据检查的时间窗口

数据写入触发器参数

参数类型默认描述
measurementstring必需用于阈值条件的监控测量值
field_conditionsstring必需阈值条件(例如,"temp>30-WARN:status==ok-INFO"
sendersstring必需点分隔的通知通道

阈值检查参数

参数类型默认描述
field_aggregation_valuesstringnone计划检查的聚合条件
deadman_checkbooleanfalse启用死人数据存在性检查
intervalstring“5min”聚合时间间隔
trigger_count数字1触发警报前的连续失败次数

通知参数

参数类型默认描述
influxdb3_auth_tokenstringenv varInfluxDB 3 API 令牌
notification_deadman_textstringtemplate死人警报消息模板
notification_threshold_textstringtemplate阈值警报消息模板
notification_textstringtemplate通用通知模板(数据写入)
notification_pathstring“notify”通知终结点路径
port_override数字8181InfluxDB 端口覆盖
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 threshold_deadman_checks_plugin.py \
  --trigger-spec "every:10m" \
  --trigger-arguments "measurement=cpu,senders=slack,field_aggregation_values=temp:avg@>=30-ERROR,window=10m,trigger_count=3,deadman_check=true,slack_webhook_url=https://hooks.slack.com/services/..." \
  threshold_scheduler

创建数据写入触发器

创建用于实时阈值监控的触发器

influxdb3 create trigger \
  --database mydb \
  --plugin-filename threshold_deadman_checks_plugin.py \
  --trigger-spec "all_tables" \
  --trigger-arguments "measurement=cpu,field_conditions=temp>30-WARN:status==ok-INFO,senders=slack,trigger_count=2,slack_webhook_url=https://hooks.slack.com/services/..." \
  threshold_datawrite

启用触发器

influxdb3 enable trigger --database mydb threshold_scheduler
influxdb3 enable trigger --database mydb threshold_datawrite

示例

死人监控

监控数据缺失情况并在未收到数据时发出警报

influxdb3 create trigger \
  --database sensors \
  --plugin-filename threshold_deadman_checks_plugin.py \
  --trigger-spec "every:15m" \
  --trigger-arguments "measurement=heartbeat,senders=sms,window=10m,deadman_check=true,trigger_count=2,twilio_from_number=+1234567890,twilio_to_number=+0987654321,notification_deadman_text=CRITICAL: No heartbeat data from \$table between \$time_from and \$time_to" \
  heartbeat_monitor

多级阈值监控

监控不同严重性级别的聚合值

influxdb3 create trigger \
  --database monitoring \
  --plugin-filename threshold_deadman_checks_plugin.py \
  --trigger-spec "every:5m" \
  --trigger-arguments "measurement=system_metrics,senders=slack.discord,field_aggregation_values=cpu_usage:avg@>=80-WARN\$cpu_usage:avg@>=95-ERROR\$memory_usage:max@>=90-WARN,window=5m,interval=1min,trigger_count=3,slack_webhook_url=https://hooks.slack.com/services/...,discord_webhook_url=https://discord.com/api/webhooks/..." \
  system_threshold_monitor

实时字段条件监控

监控数据写入是否立即违反阈值

influxdb3 create trigger \
  --database applications \
  --plugin-filename threshold_deadman_checks_plugin.py \
  --trigger-spec "all_tables" \
  --trigger-arguments "measurement=response_times,field_conditions=latency>500-WARN:latency>1000-ERROR:error_rate>0.05-CRITICAL,senders=http,trigger_count=1,http_webhook_url=https://alertmanager.example.com/webhook,notification_text=[\$level] Application alert: \$field \$op_sym \$compare_val (actual: \$actual)" \
  app_performance_monitor

组合监控

同时监控聚合阈值和死人条件

influxdb3 create trigger \
  --database comprehensive \
  --plugin-filename threshold_deadman_checks_plugin.py \
  --trigger-spec "every:10m" \
  --trigger-arguments "measurement=temperature_sensors,senders=whatsapp,field_aggregation_values=temperature:avg@>=35-WARN\$temperature:max@>=40-ERROR,window=15m,deadman_check=true,trigger_count=2,twilio_from_number=+1234567890,twilio_to_number=+0987654321" \
  comprehensive_sensor_monitor

新功能

  • 双重监控模式:计划聚合检查和实时数据写入监控
  • 死人检测:监控数据缺失和数据流丢失
  • 多级警报:支持 INFO、WARN、ERROR 和 CRITICAL 严重性级别
  • 聚合支持:监控 avg、min、max、count、sum、derivative 和 median 值
  • 可配置触发器:需要多次连续失败后才触发警报
  • 多通道通知:与各种通知系统集成
  • 模板消息:支持动态变量的可自定义警报模板
  • 性能优化:测量值和标签缓存以提高效率

故障排除

常见问题

未触发警报

  • 验证阈值是否适合您的数据范围
  • 检查通知通道是否配置正确
  • 确保 Notifier Plugin 已安装且可访问
  • 检查插件日志以查找配置错误

误报警报

  • 增加 trigger_count 以要求更多连续失败
  • 调整阈值以降低灵敏度
  • 考虑对嘈杂的数据使用更长的聚合间隔

缺少死人警报

  • 在配置中验证 deadman_check=true 是否已设置
  • 检查测量值名称是否与现有数据匹配
  • 确保时间窗口与您的数据频率相匹配

身份验证问题

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

配置格式

聚合条件(计划)

  • 格式:field:aggregation@"operator value-level"
  • 示例:temp:avg@">=30-ERROR"
  • 多个条件:temp:avg@">=30-WARN"$humidity:min@"<40-INFO"

字段条件(数据写入)

  • 格式:field operator value-level
  • 示例:temp>30-WARN:status==ok-INFO
  • 支持的操作符:>, <, >=, <=, ==, !=

支持的聚合

  • avg:平均值
  • min:最小值
  • max:最大值
  • count:记录数
  • sum:总和
  • derivative:变化率
  • median:中位数

消息模板变量

死人通知

  • $table:测量值名称
  • $time_from:检查期间的开始时间
  • $time_to:检查期间的结束时间

阈值通知(计划)

  • $level:警报严重性级别
  • $table:测量值名称
  • $field:字段名
  • $aggregation:聚合类型
  • $op_sym:操作符符号
  • $compare_val:阈值
  • $actual:实际测量值
  • $row:唯一标识符

阈值通知(数据写入)

  • $level:警报严重性级别
  • $field:字段名
  • $op_sym:操作符符号
  • $compare_val:阈值
  • $actual:实际字段值

行标识

row 变量使用以下格式唯一标识警报上下文:measurement:level:tag1=value1:tag2=value2

这确保了每个测量值、严重性级别和标签值的唯一组合的触发器计数都是独立维护的。

报告问题

有关插件问题,请参阅插件存储库的 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