什么是PromQL

PromQL(Prometheus Query Language)是Prometheus内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持。并且被广泛应用在Prometheus的日常应用当中,包括对数据查询、可视化、告警处理当中。可以这么说,PromQL是Prometheus所有应用场景的基础。

引申:metrics四种类型

* counter(计数器)  只增不减的计数器(除非系统发生重置)。常见的监控指标,如http_requests_total,node_cpu都是Counter类型的监控指标。
* gauge (仪表类型)与Counter不同,Gauge类型的指标侧重于反应系统的当前状态。因此这类指标的样本数据可增可减。常见指标如:node_memory_MemFree(主机当前空闲的内容大小)、node_memory_MemAvailable(可用内存大小)都是Gauge类型的监控指标。
* histogram(直方图类型)
* summary (摘要类型)
Histogram和Summary主用用于统计和分析样本的分布情况。
例如,为了分析某服务接口的质量,需要统计0~100ms之间的请求数、100~500ms之间的请求数、500ms~1000ms之间请求数、大于1000ms的请求数有多少。通过分析这四个区间请求数的分布从而能确定接口是快还是慢。

Histogram和Summary都是为了能够解决这样问题的存在,通过Histogram和Summary类型的监控指标,我们可以快速了解监控样本的分布情况。

例如,指标go_gc_duration_seconds的指标类型为Summary;prometheus_tsdb_compaction_chunk_size_bytes的指标类型Histogram

查询监控指标

1、查询系统负载

点击【Graph】后,输入以下内容

node_load1

查询监控指标-1

2、查询内存剩余

(1)单位参数

node_memory_MemAvailable_bytes 单位字节

node_memory_MemAvailable_bytes/1024 以k为单位显示

node_memory_MemAvailable_bytes/1024/1024 以M为单位显示

node_memory_MemAvailable_bytes/1024/1024/1024 以G为单位显示

(2)查看所有能被监控主机的内存剩余

点击【Graph】后,输入以下内容

node_memory_MemAvailable_bytes/1024/1024/1024

查询监控指标-2

(3)加条件限制

只查询192.168.1.31主机的内存剩余,点击【Graph】后,输入以下内容

node_memory_MemAvailable_bytes{instance="192.168.1.31:9100"}/1024/1024/1024

查询监控指标-3

(4)正则匹配

只查询192.168开头主机的内存剩余,点击【Graph】后,输入以下内容

node_memory_MemAvailable_bytes{instance=~"192.168.*"}/1024/1024/1024

查询监控指标-4

3、查询内存使用率

点击【Graph】后,输入以下内容

(1-node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes)*100

查询监控指标-5

4、查询CPU使用率(2分钟内)

查看192.168.1.31主机2分钟内的CPU平均使用率,点击【Graph】后,输入以下内容

1 - rate(node_cpu_seconds_total{cpu="0",instance="192.168.1.31:9100",mode="idle"}[2m])

查询监控指标-6

5、磁盘空间使用

查看磁盘类型不为tmpfs的主机的磁盘空间使用量,以G为单位。点击【Graph】后,输入以下内容

node_filesystem_avail_bytes{fstype!="tmpfs"}/1024/1024/1024

查询监控指标-7

6、查询网卡流量

(1)查询所有监控主机3分钟内的平均网卡流量(包括进出)每秒平均变化率,点击【Graph】后,输入以下内容

rate(node_network_receive_bytes_total{device="ens33"}[3m])

查询监控指标-8

(2)查询192.168.1.31主机ens33网卡3分钟内的入流量每秒平均变化率,点击【Graph】后,输入以下内容

rate(node_network_receive_bytes_total{device="ens33",instance="192.168.1.31:9100"}[3m])

查询监控指标-9

(3)查询192.168.1.31主机ens33网卡3分钟内的出流量每秒平均变化率,点击【Graph】后,输入以下内容

rate(node_network_transmit_bytes_total{device="ens33",instance="192.168.1.31:9100"}[3m])

查询监控指标-10