google-cloud-platform - GCP 警报 - 如何设置正常运行时间阈值?
问题描述
我们正在尝试使用新的(即非旧版)GCP 仪表板为我们的 kubernetes 集群设置 GKE 正常运行时间警报。类似的警报在 CPU/内存利用率方面工作正常,但关于正常运行时间的一些事情很奇怪。
下面显示的策略适用于我们的 prod 集群,并将滚动窗口设置为 10 分钟,并将 count 作为聚合函数。计数是正常运行时间分钟数。在右侧,我关闭了一项服务。您可以看到这会导致逐步变化,从 10(完全上升)逐渐下降到零(在 10 分钟内完全下降)。当指标达到 0(即低于阈值 1)时,我们应该收到警报。
但是,计数的值不会变为 0,而是在 UI 中显示为“-”。我认为这意味着 null 或什么?正如您在 step 函数中看到的那样,步数为 10,9,8....3,2,1,然后消失而不会变为 0。为什么计数不会变为零而是转到“-” on用户界面?指标描述本身将其显示为Double
,因此预计它会变为 0...
我们是否有错误的指标,或者我们是否应该将阈值设置为低于 2 作为解决方法?或者也许我应该选择“Metric Absence”作为跟踪它的最佳方式?
解决方案
我使用Metric Absence条件重现了该问题,该条件在指标在特定时间段内没有数据时触发警报。仅当容器启动并运行时才会生成正常运行时间警报。另一种情况是使用自定义指标并向它们添加时间序列数据。
编辑
如果指标中的任何时间序列没有特定持续时间窗口的数据,则会触发指标缺失条件。除了正常运行时间检查生成的指标外,与TERMINATED或DELETED Google Cloud 资源 (VM) 相关的指标不考虑用于指标缺失政策。
要为指标缺失条件类型创建警报策略,您需要选择指标(kubernetes 容器 - 正常运行时间)并调整滚动窗口中信号的时间长度。将滚动窗口函数设置为 count 。在配置警报触发器选项中将条件类型设置为 Metric Absence。
将警报触发器选择为任何时间序列违规并将缺勤时间设置为 5 分钟,然后通过选择首选通知渠道类型来创建警报策略。因此,如果容器没有数据,则会触发指标缺失条件并将警报消息发送到相应的通知通道。
推荐阅读
- typescript - TS:重新导出范围为命名空间的类
- sql-server - 基于状态的 SQL 选择
- javascript - nodejs拦截具有多个功能的发送功能
- android - 在 Mac M1 上安装 Android 许可证失败
- c# - 使用 Entity Framework 6 将父实体与数据库中现有的子实体连接起来
- react-native - Navigate from the header with createStackNavigator
- c# - 如何设置nuget包创建者
- sql - 计数值逗号分隔
- linux - 按行或文件大小拆分哪个更快
- vba - VBA/MSAccess 循环用于计算特定行的总和以形成