寻找如何使用 Prometheus 监控容器内存使用情况的示例。
如果我们使用此查询,它会报告所有容器正常:
(container_memory_usage_bytes / container_spec_memory_limit_bytes) * 100 > 90
但是,如果容器没有定义内存限制,则可以正常工作。除数为 0,结果为 +Inf,这意味着由于 +Inf 匹配 > 90,因此警报触发不正确。
对于如何正确使用容器内存使用监控有什么建议吗?
最佳答案
几天前我从不同的角度问了同样的问题here 。到目前为止我还没有找到答案。我已经解决了添加另一个标签 has_memory_limit
的问题,我用它来仅对定义了限制的容器发出警报。
好吧,我已经弄清楚了:
((container_memory_usage_bytes / container_spec_memory_limit_bytes) != +Inf) * 100 > 52
由于正无穷大、负无穷大和 NaN 都是 Prometheus 中的数字,您可以简单地使用 != +Inf
过滤掉它们。
关于kubernetes - Prometheus 监控 Kubernetes 容器内存使用情况并报告容器使用率是否超过 90%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64178265/