过滤每个 n:th 事件

Filter every n:th event

有没有什么方法可以创建一个过滤器来过滤每个 n:th 事件,其中 n 对于不同的检查是不同的。即我想在每个检查中指定一个字段,以便我可以控制不同检查的过滤频率。

有些检查 运行 一天一次,有些检查 运行 每小时一次,有些 运行 每分钟检查一次。使用我过滤每个 n:th 事件的相同过滤器不适用于不同的检查。

有没有办法避免创建 10 个不同频率的不同过滤器?

编辑:我还必须创建 10 个不同的处理程序,每个处理程序使用不同的过滤器。不是一个非常干净的解决方案和非常多的重复代码。

你试过 Mutators 了吗?我真的没有尝试过它们,但根据描述,它们可以帮助您在检查到达处理程序之前操纵检查的输出。 理论上,您可以将输出操作为 "normalize".

恐怕仅使用过滤器无法实现您尝试的效果。

Sensu 的优秀人员已经实现了我的要求。它现在也在过滤器部分使用替换令牌。

{
  "filters": {
    "occurrences": {
      "negate": true,
      "attributes": {
        "occurrences": "eval: value > :::check.occurrences|60:::"
      }
    }
  }
}