gcp 监控 "Any time series violates" 对比 "All time series violate"

gcp monitoring "Any time series violates" vs "All time series violate"

"Any time series violates"和"All time series violate"这两个选项有什么区别?我可以想象前者会轻松做什么,但我不知道后者会做什么。

所有时间序列?它的射程有多长?为什么它有 for 选项?

如果在 "for" 上选择的 window 内违反任何时间序列,任何时间都会触发。

假设有5个时间序列,其中一个有违规就会触发。

对于所有时间序列,如果它发生在 5 次中的 5 次,它就会触发。

What's the difference between the two options "Any time series violates" and "All time series violate"? I can imagine what would the former one do easily, but I have no idea what would the latter one do.

首先,什么是 "time series violates" - 当指标的当前值超出预期范围时,例如:高于指定的阈值。

其次,"any/all/percent/number" - 假设您有 5 个时间序列,例如:cpu 在 5 个实例上使用,然后每个下拉选项整个警报条件将在以下情况下违反:

  • "any time series":时间序列中任意1条违规
  • "all time series":5个时间序列全部违规
  • "percent of time series" (40%): 5 个时间序列中有 2 个是违规的,是的,在小数字上选择 39% 或 41% 会得到不同的结果,所以
  • "number of time series" (3): 5 个时间序列中有 3 个违规

第三,for 又名持续时间框,- 看起来像 "if my time series violates FOR 5 minutes, then violate the condition"。对于一些更简单的警报,这甚至可以工作,但是一旦您尝试将其与 "metric is absent" 或其他复杂配置结合使用,您将看到实际发生的是 "wait for 5 minutes after the problem is there, and only then trigger the violation"。

在实践中,不鼓励使用 for 字段,最好将其保留为默认值 "Most recent value"。

如果您确实需要 "cpu usage is above 90% for 5 minutes",那么正确的做法是 denoizing/smoothing 您的数据:

  • 将校准周期设置为 5 分钟(或任何您想要的滑动 window)
  • 然后选择合理的对准器(例如,mean 将取平均值)
  • 然后虽然图表中的数据点会更少,但它们的噪音会更少,您可以根据最新值采取行动。