Documentation

根据层级抑制Kapacitor警报

Kapacitor 允许您构建一个强大的监控和警报解决方案,具有多个“级别”或“层级”的警报。 然而,当一个事件同时触发高层和低层警报时,会出现一个问题,您最终会收到来自不同上下文的多个警报。 AlertNode的 .inhibit() 方法允许您在触发警报时抑制其他警报。

例如,假设您正在监控一组服务器。作为您警报架构的一部分,您有主机级别的警报,例如CPU使用率警报、RAM使用率警报、磁盘I/O等。您还有监控网络健康、主机正常运行时间等的集群级别警报。

如果集群中某个主机的CPU峰值使机器下线,则您将收到一个单一的警报——该节点下线的警报,而不是针对CPU峰值的主机级别警报针对下线节点的集群级别警报。集群级别警报会抑制主机级别警报。

使用.inhibit()方法来抑制警报

.inhibit() 方法使用警报类别和标签来抑制或压制其他警报。

// ...
  |alert()
    .inhibit('<category>', '<tags>')

category
此警报抑制或禁止警报的类别。

tags
一个以逗号分隔的标签列表,必须匹配才能抑制或压制警报。

示例分层警报抑制

以下TICKscripts表示分层警报架构中的两个警报。第一个是主机特定的CPU警报,当空闲CPU使用率低于10%时,会向system_alerts类别触发警报。流数据点按host标签分组,该标签标识数据点来源的主机。

cpu_alert.tick

stream
  |from()
    .measurement('cpu')
    .groupBy('host')
  |alert()
    .category('system_alerts')
    .crit(lambda: "usage_idle" < 10.0)

以下的 TICKscript 是一个集群级别的警报,用于监控集群中主机的正常运行时间。 它使用 deadman() 函数来 当主机无响应或离线时创建警报。 在 deadman 警报中的 .inhibit() 方法抑制所有包含匹配 host 标签的 system_alerts 类别的警报,这意味着它们来自同一主机。

host_alert.tick

stream
  |from()
    .measurement('uptime')
    .groupBy('host')
  |deadman(0.0, 1m)
    .inhibit('system_alerts', 'host')

通过这种警报架构,一个主机可能由于CPU瓶颈而无响应,但由于死人的警报抑制了来自同一主机的系统警报,因此您不会同时收到死人的警报和高CPU使用率的警报通知;只会收到该特定主机的死人的警报。



Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: