我想为普罗米修斯写一个警报查询。如果任何节点消耗的内存超过特定的内存百分比,这将引发警报。
我想动态获取节点并检查它的内存状态。
读取所有节点
使用查询循环遍历每个节点
sum(container_memory_usage_bytes{job="kubernetes-nodes", id="/", instance="$node"}) / sum(machine_memory_bytes{job="kubernetes-nodes", instance="$node"}) * 100
如果我提供节点的静态名称,此警报有效
ALERT HighMemoryAlert
IF 100 * sum(container_memory_usage_bytes{job="kubernetes-nodes", id="/",instance="ip-170-10-10-17.eu-west-1.compute.internal"}) / sum(machine_memory_bytes{job="kubernetes-nodes",instance="ip-170-10-10-17.eu-west-1.compute.internal"}) > 90
FOR 15m
LABELS {
service = "k8s",
severity = "warning"
}
ANNOTATIONS {
summary = "HighMemoryAlert"
}
我不想静态添加 ip,因为如果任何节点崩溃并使用不同的 ip 创建,k8s 节点 ip 可以在一段时间内更改