prometheus報警規則,是由promsql語句編寫組合的,但是有時語句會很長,我們看還好,但是有時間業務組那邊也會使用promsql來看主機偏高的指標,這邊只能設置別名,方便他們使用。
別名設置:
很簡單,也是和報警規則一樣,但是語法可能不一樣
示例
[root@hdpv3test08 rules]# cat prometheus_rules_name.yml
groups:
- name: alive
rules:
- record: node:ping:total
expr: up
- name: cpu
rules:
- record: node:cpu_usage:ratio #別的文件使用,直接使用這個
expr: ((100 - (avg by(instance,ip,hostname) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)))
- name: mem
rules:
- record: node:memory_usage:ratio
expr: (100 -(node_memory_MemTotal_bytes -node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes ) / node_memory_MemTotal_bytes * 100 )
node:cpu_usage:ratio 就是查看cpu使用率的指標
下面兩張圖就是區別


我們正常使用,就是直接采用這個別名指標了

業務組使用
prometheus支持promsql語法,我們可以通過相關語句,很快定位到集群,資源使用情況
如:高CPU 高內存,出入流量大, tcp連接數多等等一些列問題。
主機重啟
delta(node_boot_time_seconds[5m]) != 0

文件只讀異常
node_filesystem_readonly == 1
CPU使用率
((100 - (avg by(instance,ip,hostname) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)))

內存使用率
(100 -(node_memory_MemTotal_bytes -node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes ) / node_memory_MemTotal_bytes * 100 )
IO性能
100-(avg(irate(node_disk_io_time_seconds_total[5m])) by(instance,hostname)* 100) < 40
磁盤使用率
100-(node_filesystem_free_bytes{fstype=~"ext4|xfs"}/node_filesystem_size_bytes {fstype=~"ext4|xfs"}*100) > 80
主機網絡IO速率
入速率(MiB/s)
irate(node_network_receive_bytes_total{}[5m]) / 1024 / 1024
出速率(MiB/s)
irate(node_network_transmit_bytes_total{}[5m]) / 1024 / 1024
主機磁盤IO
寫速率(MiB/s)
irate(node_disk_written_bytes_total{}[5m]) / 1024 / 1024
讀速率(MiB/s)
irate(node_disk_read_bytes_total{}[5m]) / 1024 / 1024
TCP連接數
node_netstat_Tcp_CurrEstab
