存储钩子¶
存储钩子在遥测写入数据库之前执行,用于校验、丰富和转发。
钩子类型¶
- 表达式 — 修改传入数据点的 JavaScript 脚本。
- Webhook — 将数据点发送到 HTTP URL。
- WASM — 在沙箱内同进程执行的 WebAssembly(WASI)模块。
通用字段¶
- 排序 — 钩子按升序执行。
- 测点键 — 逗号分隔的适用测点键;为空表示适用于所有键。
- 超时(毫秒) — 最长执行时间。
- 失败策略 — 钩子失败时的处理方式:
- 透传 — 仍然存储原始数据点。
- 中止 — 不存储该数据点。
- 死信 — 将数据点移入死信队列。
表达式示例¶
point.v_double = point.v_double * 2
WASM 钩子¶
WASM 钩子在沙箱内运行 WebAssembly(WASI)模块,无网络与文件系统访问。 数据点以单个 JSON 对象从模块的 stdin 传入;模块向 stdout 输出一个 JSON 对象,按与表达式钩子相同的契约覆盖数据点:
{"v_double": 42, "unit": "C"}覆盖字段;{"drop": true}中止该数据点;- stdout 为空则保持数据点不变。
硬性预算:内存 16 MiB、输出 64 KiB、以及每个钩子配置的超时(死循环会被强杀)。
在钩子编辑器上传 .wasm 文件或粘贴标准 base64(config.module_b64),模块默认上限
2 MiB(可由运维配置)。编辑时模块字段留空表示保留已存储的二进制。模块在保存时会被
校验(编译),无效二进制会被立即拒绝。
可在死信队列页面查看并重放按 死信 策略拒绝的数据点。