Prometheus常用查询参数
一、速率 增长类最常用1. 每秒速率QPS / TPS PromQL rate(http_requests_total[5m]) 计算过去5分钟的平均每秒增长量2. 瞬时速率更敏感 PromQL irate(http_requests_total[5m]) 适用于短周期波动如突发流量3. 总增量 PromQL increase(http_requests_total[1h]) 统计1小时内的总请求数二、CPU 相关最经典1. CPU 使用率100-(avg by(instance)(irate(node_cpu_seconds_total{modeidle}[1m]))*100)(1- sum(rate(node_cpu_seconds_total{instanceinstance,modeidle}[5m]))/count(count(node_cpu_seconds_total{instanceinstance})by(cpu)))*100 PromQL100-(avg by(instance)(rate(node_cpu_seconds_total{modeidle}[5m]))*100) 含义 • idle 越高 → CPU 越空闲 • 用100- idle 得真实使用率2. 单核 CPU 使用 PromQL rate(node_cpu_seconds_total{mode!idle}[5m])三、内存使用率1. 内存使用率 PromQL(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)/ node_memory_MemTotal_bytes *1002. 缓存 buffer 不算使用 PromQL(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes)/ node_memory_MemTotal_bytes四、磁盘相关1. 磁盘使用率 PromQL(1- node_filesystem_avail_bytes / node_filesystem_size_bytes)*1002. 磁盘 IO 吞吐量 PromQL rate(node_disk_read_bytes_total[5m])rate(node_disk_written_bytes_total[5m])3. 磁盘 IO 利用率%util PromQL rate(node_disk_io_time_seconds_total[5m])五、网络流量1. 入流量 PromQL rate(node_network_receive_bytes_total[5m])2. 出流量 PromQL rate(node_network_transmit_bytes_total[5m])六、HTTP 服务监控1. QPS PromQL sum(rate(http_requests_total[1m]))2. 错误率 PromQL sum(rate(http_requests_total{status~5..}[5m]))/ sum(rate(http_requests_total[5m]))3. 平均响应时间 PromQL rate(http_request_duration_seconds_sum[5m])/ rate(http_request_duration_seconds_count[5m])4. P95 / P99 延迟Histogram PromQL histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))七、Pod / 容器监控K8s1. CPU 使用率 PromQL rate(container_cpu_usage_seconds_total[5m])2. 内存使用 PromQL container_memory_usage_bytes3. 重启次数 PromQL increase(kube_pod_container_status_restarts_total[1h])八、负载 并发1. 系统负载 PromQL node_load1 node_load5 node_load152. 每核负载 PromQL node_load1 / count(count(node_cpu_seconds_total)by(cpu))九、可用性 (SLA/SLO)1. 成功率 PromQL sum(rate(http_requests_total{status!~5..}[5m]))/ sum(rate(http_requests_total[5m]))2. 可用性Availability PromQL1-(错误请求 / 总请求)十、告警常见表达式1. CPU过高 PromQL CPU使用率802. 内存不足 PromQL 内存使用率853. 磁盘剩余不足 PromQL node_filesystem_avail_bytes / node_filesystem_size_bytes10%4. QPS 突降 PromQL rate(http_requests_total[5m])rate(http_requests_total[30m])*0.5✅ 常用函数总结函数作用rate()平均速率irate()瞬时速率increase()增量sum()聚合avg()平均max()最大min()最小histogram_quantile()分位数✅ 实战建议很重要 经验总结 • 统计类 → rate() sum()• 延迟类 → histogram_quantile()• 告警 → 用 5m窗口 连续触发 • 面板 → 用 irate()更灵敏 • 容器 → 注意 labelpod / namespace十一、Grafana 主机监控变量推荐定义 variables PromQL label_values(node_cpu_seconds_total, instance) 生成$instance下拉选择主机十二、企业级最佳实践重点✅1. 一定要做分组 PromQL by(instance)✅2. 使用 rate 而不是 raw 数据 ❌ 错误 PromQL node_cpu_seconds_total ✅ 正确 PromQL rate(...[5m])✅3. 过滤无效设备磁盘/网络 PromQL device!~loop|ram✅4. 面板时间建议 场景 推荐 实时监控 5m 排障 1h 分析 6h / 24h推荐几个grafana监控模板名称idlinux主机列表12632Node exporter1860Cadvisor19724