【问题标题】:Cumulocity Alarm Text Rewriting based on Type基于类型的累积量报警文本重写
【发布时间】:2018-10-11 06:37:31
【问题描述】:

我们在 cumulocity 的警报类型方面遇到了一个令人费解的问题。

我们发现,当我们通过 HTTPS 或 MQTT 使用代理创建警报时,第一个警报创建(对于给定类型)的“类型”字段决定了任何后续调用的严重性和文本字段同类型。

例如,如果 MQTT 代理第一次运行,它会运行:

client.publish('s/us', '301,Critical,TextA');
await waitFor(400);
client.publish('s/us', '302,Major,TextB');
await waitFor(400);
client.publish('s/us', '303,Minor,TextC');
await waitFor(400);
client.publish('s/us', '304,Warning,TextD');

如果相同的代码行随后被更改为:

// Note that 301 is used for all alarms, indicating severity critical
client.publish('s/us', '301,Critical,Apple');
await waitFor(400);
client.publish('s/us', '301,Major,Banana');
await waitFor(400);
client.publish('s/us', '301,Minor,Coconut');
await waitFor(400);
client.publish('s/us', '301,Warning,Durian');

无论我们现在为每个警报指定严重性 CRITICAL 和不同的文本,创建的警报都将具有与其严重性和第一组调用中的文本相对应的严重性和文本;例如,将创建一个带有{severity: "MAJOR", text: "TextB"} 的新警报。

奇怪的是,这种行为似乎基于前缀。如果代码被修改为:

client.publish('s/us', '301,Critical1000,Apple');
await waitFor(400);
client.publish('s/us', '301,Major1000,Banana');
await waitFor(400);
client.publish('s/us', '301,Minor1000,Coconut');
await waitFor(400);
client.publish('s/us', '301,Warning1000,Durian');

创建的警报将再次保留第一次警报创建时的严重性和文本,例如将创建带有{severity: "MAJOR", text: "TextB", type: "Major1000"} 的第三个警报。

好的,所以某种基于前缀的缓存正在进行中。也许有办法清除它?

但是,我还没有描述最神秘的现象。到目前为止,我所涉及的一切都是基于每个 ManagedObject 的。缓存不会延续到新的设备/托管对象。

但是,在我们的整个租约中,对于任何来源,任何带有 {type: "Warning"} 或其“类型”以前缀“警告”开头的警报,都会有{severity: "WARNING", text: "WOAHDUDE"}.

概括地说,如果我们尝试创建一个从任何来源发出的类型为“警告”的警报,一个新的 "WOAHDUDE" 会出现在我们的仪表板中。

在某个时候,我使用{severity: "WARNING", type: "Warning", text: "WOAHDUDE"} 创建了一个警报。我不知道这如何在整个租约中建立某种“WOAHDUDE”模板,但似乎有。如何撤消此操作?

【问题讨论】:

    标签: cumulocity


    【解决方案1】:

    我认为您所经历的只是警报重复数据删除(https://www.cumulocity.com/guides/reference/alarms/搜索重复数据删除)。

    只要具有给定类型 x 的设备存在活动警报,并且您为具有相同类型的同一设备创建新警报,警报就会被完全丢弃,并且在第一个警报中计数器会增加。

    因此,如果第二个警报具有不同的严重性、文本或其他任何内容,则此信息不会更新到现有警报中。

    关于类型中带有前缀“警告”的所有警报获得相同文本的问题。也许您在管理中创建了警报映射。这些映射是租户范围的,并会在创建时覆盖警报的严重性和文本。

    【讨论】:

    • 您说的完全正确,警报映射中确实有这样的规则。我一定是在几个月前创建它来测试功能并完全忘记了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 2019-07-08
    • 2021-06-08
    • 1970-01-01
    • 2019-03-24
    • 2014-05-11
    相关资源
    最近更新 更多