Prometheus内置函数 查询语句

Node相关

开机时间

(time() - node_boot_time_seconds{instance="$instance"})

Node可用内存小于10%

node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.1

Node NotReady

kube_node_status_condition{job="kube-state-metrics",condition="Ready",status="true"} == 0

cpu使用率

100 - (avg(irate(node_cpu_seconds_total{instance=~"$instance",mode="idle"}[30m])) * 100)

内存使用率

(1 - (node_memory_MemAvailable_bytes{instance=~"$instance"} / (node_memory_MemTotal_bytes{instance=~"$instance"})))* 100

Pod相关

pod当前重启次数大于1000次

kube_pod_container_status_restarts_total{namespace=~"java-service|php-service|dotnet-service"}>1000

Pod在20m内重启次数超过4次

delta(kube_pod_container_status_restarts_total[20m]) > 4

pod平均启动时间,(包含镜像下载时间)

kubelet_pod_start_latency_microseconds_sum / kubelet_pod_start_latency_microseconds_count

Pod状态CrashLoopBackOff

kube_pod_container_status_waiting_reason{reason="CrashLoopBackOff"} == 1

Pod状态OOMKilled

kube_pod_container_status_terminated_reason{reason="OOMKilled"} == 1

其他

基于2小时的样本数据,来预测主机可用磁盘空间的是否在4个小时候被占满,可以使用如下表达式:

predict_linear(node_filesystem_free{job="node"}[2h], 4 * 3600) < 0

node_cpu在最近两分钟的平均增长率。近似于主机节点最近两分钟内的平均CPU使用率。

increase(node_cpu[2m]) / 120

等同于
rate(node_cpu[2m])

irate同样用于计算区间向量的计算率,但是其反应出的是瞬时增长率。能够更好的反应样本数据的瞬时变化状态。

irate(node_cpu[2m])

你可能感兴趣的:(k8s)