Prometheus提供了许多有关系统性能和资源利用的内置指标,可以使用这些指标进行系统指标的计算和分析。以下是一些常见的系统指标计算公式示例:
CPU使用率:
100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)
该公式计算了CPU的使用率,使用了node_cpu_seconds_total指标来获取CPU空闲时间的变化,并将其转换为使用率。
CPU负载:
node_load1
node_load1指标显示了系统的最近1分钟平均负载。
内存使用率:
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100
该公式计算了内存的使用率,使用了node_memory_MemTotal_bytes和node_memory_MemAvailable_bytes指标。
磁盘使用率:
100 - (node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100)
该公式计算了根目录磁盘的使用率,使用了node_filesystem_free_bytes和node_filesystem_size_bytes指标。
网络流量:
sum by (device) (rate(node_network_receive_bytes_total[1m])) / 1024
该公式计算了每个网络设备的接收流量,使用了node_network_receive_bytes_total指标,并将其转换为KB。
在使用Prometheus监控Web指标时,可以使用以下常用的计算公式来获取有用的指标信息:
请求成功率(Request Success Rate):
(1 - (rate(http_requests_total{status=~"5.."}[1m]) / rate(http_requests_total[1m]))) * 100
该公式计算了请求成功的比率,根据HTTP请求的状态码(以5开头的状态码被视为失败)来计算成功率。
平均请求响应时间(Average Request Response Time):
avg(http_request_duration_seconds)
使用http_request_duration_seconds指标计算了所有请求的平均响应时间。
最大请求响应时间(Maximum Request Response Time):
max(http_request_duration_seconds)
使用http_request_duration_seconds指标获取所有请求的最大响应时间。
请求速率(Request Rate):
rate(http_requests_total[1m])
该公式计算了每分钟的HTTP请求速率。
错误请求率(Error Request Rate):
(rate(http_requests_total{status=~"4..|5.."}[1m]) / rate(http_requests_total[1m])) * 100
该公式根据HTTP请求的状态码(以4开头或5开头的状态码)计算了错误请求的比率。
在使用Prometheus监控数据库指标时,以下是一些常用的计算公式示例:
查询响应时间(Query Response Time):
avg(irate(mysql_query_duration_seconds_sum[5m])) / avg(irate(mysql_query_duration_seconds_count[5m]))
该公式计算了数据库查询的平均响应时间,使用了mysql_query_duration_seconds_sum和mysql_query_duration_seconds_count指标。
慢查询比率(Slow Query Rate):
(irate(mysql_slow_queries_total[5m]) / irate(mysql_queries_total[5m])) * 100
该公式计算了慢查询的比率,使用了mysql_slow_queries_total和mysql_queries_total指标。
连接数(Connection Count):
mysql_global_status_threads_connected
mysql_global_status_threads_connected指标显示了当前的数据库连接数。
锁等待次数(Lock Waits):
sum(rate(mysql_global_status_innodb_lock_wait_secs_total[5m]))
该公式计算了锁等待的次数,使用了mysql_global_status_innodb_lock_wait_secs_total指标。
锁等待时间(Lock Wait Time):
sum(rate(mysql_global_status_innodb_lock_wait_secs_total[5m]))
该公式计算了锁等待的总时间,使用了mysql_global_status_innodb_lock_wait_secs_total指标。