使用场景
假设设备上报与用水量对应的绝对「counter」值。 而您希望可视化「delta」值(如过去一天/一周/一月的用水量)而非绝对值。
本教程将根据当前读数与前一条读数计算 counter 的「delta」。
假设上一条上报的 counter 值是 90,则入站 telemetry:
1
2
3
{
"counter": 100
}
会被转换为:
1
2
3
4
{
"counter": 100,
"delta": 10
}
前置条件
请先完成以下指南并阅读相关文章:
步骤 1:添加数据补全节点
我们将修改默认 rule chain,新增一个 enrichment 节点,从数据库读取上一条 telemetry 值并写入消息 metadata。

节点配置如下:

请注意:如果缺少 counter 值,该节点会返回失败。
我们将在下一步设置默认的上一计数值,以避免这类失败。
步骤 2:设置默认上一计数值
这个 transformation 节点会在入站消息 metadata 中写入默认 counter。
这样在下一步计算时,若无历史值,delta 默认就是 0。

步骤 3:Delta 转换节点
该 transformation 节点会基于 metadata 中的上一计数值和消息中的当前值计算 delta。

步骤 4:配置 Dashboard 查看数据
我们添加了一个简单的卡片部件,用于展示 rule chain 生成的最新数值。

快速导入
下载并导入本教程附带的 rule chain json file。
不要忘记将新 rule chain 设为 root。

下载并导入本教程附带的 dashboard json file。