如果发生故障,我怎样才能只用 kapacitor 发送一个警报?

How can I send just one alert with kapacitor if something is down?

我有以下棒脚本

stream
|from()
    .measurement('mymetric_value')
|deadman(1.0, 10s)
    .message('service is down!')
    .log('/tmp/alerts.log')
    .email('myemail@company.com')

它每 10 秒发送一次服务已关闭的警报。 如何设置只发送一个?

在 TICKscript 的警报节点上有一个 属性 方法 stateChangesOnly(),它只会在警报状态发生变化时发出警报。您的脚本将如下所示:

stream
|from()
    .measurement('mymetric_value')
|deadman(1.0, 10s)
    .message('service is down!')
    .log('/tmp/alerts.log')
    .email('myemail@company.com')
    .stateChangesOnly()

有关详细信息,请参阅 kapacitor documentation on stateChangeOnly()