google-cloud-platform - gcp监视“任何时间序列违反”与“所有时间序列违反”
解决方案
“违反任何时间序列”和“违反所有时间序列”这两个选项有什么区别?我可以想象前者会轻松做什么,但我不知道后者会做什么。
首先,什么是“违反时间序列” - 当指标的当前值超出预期范围时,例如:高于指定的阈值。
其次,“任何/全部/百分比/数字” - 假设您有 5 个时间序列,例如:5 个实例上的 cpu 使用情况,然后每个下拉选项,整个警报条件将在以下情况下违反:
- “任何时间序列”:时间序列中的任何 1 个违反
- “所有时间序列”:所有 5 个时间序列都违反
- “时间序列百分比”(40%):5 个时间序列中有 2 个是违规的,是的,在小数字上选择 39% 或 41% 会给你不同的结果,所以
- “时间序列数”(3):5 个时间序列中有 3 个违规
第三,for
也就是持续时间框,它看起来像“如果我的时间序列违反了 5 分钟,那么就违反了条件”。对于一些更简单的警报,这甚至可以工作,但是一旦您尝试将其与“指标不存在”或其他复杂配置结合起来,您将看到实际发生的情况是“在问题出现后等待 5 分钟,然后只有这样才会触发违规”。
在实践中,for
不鼓励使用字段,最好将其保持为默认的“最新值”。
如果您确实需要“5 分钟内 cpu 使用率高于 90%”,那么正确的做法是对数据进行降噪/平滑处理:
- 将对齐周期设置为 5 分钟(或任何您想要的滑动窗口)
- 然后选择合理
mean
的对齐器(例如,它将平均值) - 然后,虽然图表的数据点更少,但它们的噪音会更小,您可以根据最新值采取行动。
推荐阅读
- maven - 如何防止将阴影 jar 安装到本地存储库
- html - 如何在border-bottom 属性中创建圆角线边框?
- substrate - 出现错误:找不到包“编解码器”的匹配版本“^2.0.0”?
- pytorch - 使用小批量时累积的 pytorch 损失
- html - 根据多长时间前显示日期或日期名称的最近呼叫
- sockets - Dart 套接字不发送低于 31 的 utf-8 字符
- docker - 如何通过互联网连接到 Docker 容器中打开的 tcp 端口
- android - ExifInterface 无法处理来自 sdcard 的文件
- email - 未送达的邮件退回给发件人 Roundcube Plesk
- r - R中分类变量中跳跃的regsubsets包力