暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PromQL高效查询和分析数据

IT那活儿 2023-10-30
123
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

PromQL简介

Prometheus是云原生领域的开源时序数据库,支持类SQL的查询和处理prometheus的采集数据,即PromQL(Prometheus Query Language),PromQL是内置的数据查询语言,提供了对时间序列数据丰富的查询、聚合以及逻辑运算能力,具有丰富的语言表现力,广泛的应用到prometheus的日常使用中,包括对数据查询、可视化、告警处理等。


Promtheus安装
下载地址:https://prometheus.io/download/
2.1 解压安装文件
2.2 进入Prometheus目录修改配置文件,将IP修改为当前主机IP
2.3 后台启动prometheus服务
2.4 查看prometheus运行日志
2.5 浏览器打开IP:9090即可进入prometheus监控页面
2.6 采集器exporter请根据需要自行安装
2.7 通过指定指标名称加标签的方式进行查询,可在prometheus表达式执行器上执行

<metric name>{<label name>=<label value>, ...}


PromQL高效查询和分析数据
3.1 查询cpu空闲时的使用时间
node_cpu_seconds_total{mode=”idle”}
3.2 查询cpu非空闲时的使用时间
node_cpu_seconds_total{mode!=”idle”}
3.3 通过监控名称查询时间序列,直接返回瞬时值
pushgateway_http_requests_total{instance=~"pushgateway",method="get"}
3.4 获取一个时段的样本数据时,则需要使用区间矢量表达式,如统计1分钟内的数据,可以通过时间范围选择器"[ ]"进行自定义
pushgateway_http_requests_total{instance=~"pushgateway",method="get"}[1m]
3.5 统计较长时间的数据时,可使用时间位置查询(offset),如统计1天的数据,也可切换到Graph模式进行查看
pushgateway_http_requests_total{instance=~"pushgateway",method="get"}offset 1d
3.6 当需要取数据的平均值、总值可使用聚合查询,如avg、sum
sum(node_cpu_seconds_total)by(mode)--按照mode计算CPU的总使用时间
avg(node_cpu_seconds_total)by(mode)--按照mode计算CPU的平均使用时间
3.7 通过rate()函数获取HTTP请求量的增长率
rate(prometheus_http_requests_total[5m])-- 获取HTTP请求量5m的增长率
3.8 查询当前系统中,访问量top5的HTTP地址
topk(5, prometheus_http_requests_total)
3.9 获取最近2分钟系统5分钟的平均负载所有数据
node_load5{}[2m]
3.10 获取主机磁盘IO的总量
node_disk_written_bytes_total + node_disk_read_bytes_total
3.11 查询1小时内内存的使用率
100 * (1 - ((avg_over_time(node_memory_MemFree_bytes[1h]) + 
avg_over_time(node_memory_Cached_bytes[1h]) +
avg_over_time(node_memory_Buffers_bytes[1h]))
avg_over_time(node_memory_MemTotal_bytes[1h])))


END


本文作者:方 威(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论