prometheus metrics 计算公式

本文介绍了监控系统中关键的性能指标,包括节点CPU、内存、网络、磁盘以及Pod的CPU使用率、内存使用、网络流量、磁盘I/O等,同时提及了物理CPU核数和内存总量的计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

节点CPU使用率(%)
#(1-avg by(job,perf_test_id,server_name) (irate(node_cpu_seconds_total{mode="idle"}[5m])))*100


avg by(job,perf_test_id,server_name) (irate(node_cpu_seconds_total{mode=~"sytem|user|iowait|irq|softirq|nice|steal|guest"}[15s]))*100

sum by (appId, soft_type, server_name) (irate(node_cpu_seconds_total{mode!=\"idle\"}[30s])) / sum by (appId, soft_type, server_name) (irate(node_cpu_seconds_total[30s])) * 100

节点内存使用量(%)
(1-(node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes)/node_memory_MemTotal_bytes)*100

节点网卡(eth0)接收数据流量速率(KBps)
irate(node_network_receive_bytes_total{device="eth0"}[15s])/1024

节点网络(eth0)发送数据流量速率(KBps)
irate(node_network_transmit_bytes_total{device="eth0"}[15s])/1024

节点磁盘(vda)读取字节速率(KBps)
irate(node_disk_read_bytes_total{device="vda"}[15s])/1024

节点磁盘(vda)写入字节速率(KBps)
irate(node_disk_written_bytes_total{device="vda"}[15s])/1024

节点磁盘(vda)读取速率(I/Ops)
irate(node_disk_reads_completed_total{device="vda"}[15s])

节点磁盘(vda)写入速率(I/Ops)
irate(node_disk_writes_completed_total{device="vda"}[15s])

Pod CPU使用率(%)
sum by(namespace,pod) (irate(container_cpu_usage_seconds_total{namespace=~"$namespace",container=""}[1m]))*100

Pod 内存使用量(%)
sum by(namespace,pod) (container_memory_usage_bytes{namespace=~"$namespace",container=""}/container_spec_memory_limit_bytes)*100

Pod 网卡接收速率
sum by(namespace,pod,interface) (irate(container_network_receive_bytes_total{namespace=~"$namespace"}[1m]))

Pod 网卡发送速率
sum by(namespace,pod,interface) (irate(container_network_transmit_bytes_total{namespace=~"$namespace"}[1m]))

Pod 磁盘读取频率(I/Ops)
sum by(namespace,pod,device) (irate(container_fs_reads_total{namespace=~"$namespace",container=""}[1m]))

Pod 磁盘写入频率(I/Ops)
sum by(namespace,pod,device) (irate(container_fs_writes_total{namespace=~"$namespace",container=""}[1m]))

Pod 磁盘读取字节速率(I/Ops)
sum by(namespace,pod,device) (irate(container_fs_reads_bytes_total{namespace=~"$namespace",container=""}[1m]))/1024

Pod 磁盘写入字节速率(I/Ops)
sum by(namespace,pod,device) (irate(container_fs_writes_bytes_total{namespace=~"$namespace",container=""}[1m]))/1024


物理CPU核数
count(node_cpu_seconds_total{mode='system'}) by (appId, soft_type, server_name)

物理内存
sum(node_memory_MemTotal_bytes) by (appId, soft_type, server_name)
 

### Grafana 中内存计算公式的配置 在监控系统性能时,Grafana 常被用来展示来自各种数据源的时间序列数据。对于内存使用情况的可视化,通常会依赖于Prometheus等时间序列数据库中的指标。 为了在Grafana中正确表示Linux服务器上的可用内存量,可以采用如下查询语句: ```promql node_memory_MemAvailable_bytes / 1024 / 1024 ``` 这条命令将`node_memory_MemAvailable_bytes`这个度量转换成兆字节(MB),以便更直观地理解当前主机上实际可使用的物理RAM数量[^1]。 如果想要查看总的已用内存,则可以通过下面的方式来进行计算: ```promql (node_memory_Active_bytes + node_memory_Inactive_bytes + node_memory_WiredBytes) / 1024 / 1024 ``` 上述表达式汇总了活动(`Active`)、不活跃(`Inactive`)以及线程缓存(`WiredBytes`)三部分的数据,并同样将其单位调整为MB形式展现出来。 当涉及到具体的应用场景下对特定应用程序占用内存大小的关注时,可能还需要结合其他工具获取更加精确的信息。例如通过ps命令配合grep过滤目标服务名称来定位单个进程所消耗的资源状况;或是利用netstat检查监听端口状态以辅助分析网络相关联的服务行为[^2]。 另外,在某些情况下,用户可能会关注一段时间内的变化趋势而非绝对值。这时就可以运用到像increase函数这样的特性,它能够帮助我们了解指定时间段里计数器类型的统计数据的增长幅度。不过需要注意的是,这种方法适用于那些随着时间单调递增的测量项,比如CPU周期次数之类的计量对象[^3]。 #### 示例面板设置 假设已经有一个名为 `prometheus` 的数据源连接到了Grafana实例当中,那么创建一个新的图表并应用以上任一PromQL查询作为其背后逻辑的基础就变得非常简单了。只需按照常规流程新建仪表板->添加新面板->编辑模式下的Metrics选项卡输入相应的PromQL即可完成基本配置工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值