要找出內存使用率大于80%的主機,你可以使用以下PromQL查詢。這個查詢會計算每個節點的內存使用率,然后篩選出使用率超過80%的節點:
(avg by(nodename) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)* on(instance) group_left(nodename)sum by(instance, nodename) (node_uname_info)) / avg by(nodename) (node_memory_MemTotal_bytes* on(instance) group_left(nodename)sum by(instance, nodename) (node_uname_info)) * 100
) > 80
要找出**內存使用率小于30%**的主機,只需將前面的查詢條件從 > 80 改為 < 30 即可。以下是完整的 PromQL 查詢:
(avg by(nodename) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)* on(instance) group_left(nodename)sum by(instance, nodename) (node_uname_info)) / avg by(nodename) (node_memory_MemTotal_bytes* on(instance) group_left(nodename)sum by(instance, nodename) (node_uname_info)) * 100
) < 30
100 - (avg by(nodename) (node_memory_MemAvailable_bytes* on(instance) group_left(nodename)sum by(instance, nodename) (node_uname_info)) / avg by(nodename) (node_memory_MemTotal_bytes* on(instance) group_left(nodename)sum by(instance, nodename) (node_uname_info)) * 100
)
100 - (
avg by(nodename) (
rate(node_cpu_seconds_total{mode="idle"}[5m])
* on(instance) group_left(nodename)
sum by(instance, nodename) (node_uname_info)
) * 100
)