一、PromQL 操作符
1.1、查看根分区大小
node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}
1.2、查看根分区已用百分比
100 - node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"} * 100
(1-(node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"})) * 100
1.3、磁盘利用率大于20% 小于 50%
20 < (node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 <= 50
1.4、磁盘利用率大于20% 并且小于等于50%
(node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 > 20 and (node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 <= 50
1.5、磁盘利用率大于20% 或者小于等于50%
(node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 > 20 or (node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 <= 50
1.6、磁盘利用率小于30% 或者大于等于50%
(node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 < 30 or (node_filesystem_free_bytes{mountpoint="/"} /node_filesystem_size_bytes{mountpoint="/"}) * 100 >= 50
二、PromQL 常用函数
2.1、探测网站访问大于3s
sum(probe_http_duration_seconds)> 3
2.2、集群磁盘总剩余量
sum(node_filesystem_free_bytes{mountpoint="/"})/(1024^3)
2.3、状态码200 请求总数
sum(prometheus_sd_kubernetes_http_request_total) by (status_code)
{status_code="200"}
6332
{status_code="<error>"}
2.4、统计请求头和请求状态码数量
sum(prometheus_http_requests_total) by (code,handler)
2.5、统计访问前三的状态码总数
topk(3,sum(prometheus_http_requests_total) by (code,handler))
2.6、统计访问最后三位的状态码总数
bottomk(3,sum(prometheus_http_requests_total) by (code,handler))
2.7、ceil取整(四舍五入)
ceil(node_filesystem_free_bytes/1024^3)
2.8、取整数(直接去掉整数)
floor(node_filesystem_free_bytes/1024^3)
2.9、从小到大排序
sort(node_filesystem_free_bytes/1024^3)
2.10-、从大到小排序
sort_desc(node_filesystem_free_bytes/1024^3)
2.11、计算数据在一段时间内的增长数
increase(prometheus_http_requests_total{handler="/api/v1/metadata",service="prometheus-k8s",code="200"}[1h])
increase(kubelet_http_requests_total{metrics_path="/metrics"}[10m]) /600
{endpoint="https-metrics", instance="192.168.122.160:10250", job="kubelet", long_running="false", method="GET", metrics_path="/metrics", namespace="kube-system", node="master", path="metrics", server_type="readwrite", service="kubelet"}
0.03333333333333333
rate(kubelet_http_requests_total{metrics_path="/metrics"}[10m])
{endpoint="https-metrics", instance="192.168.122.160:10250", job="kubelet", long_running="false", method="GET", metrics_path="/metrics", namespace="kube-system", node="master", path="metrics", server_type="readwrite", service="kubelet"}
0.03333333333333333
irate(kubelet_http_requests_total{metrics_path="/metrics"}[10m])