直观感受PromQL及其数据类型

news/2024/5/18 22:22:01 标签: 云原生, 监控, prometheus

由于PromQL内容较多,将内容分为三篇文章讲述:
一、直观感受PromQL及其数据类型
二、PromQL之选择器和运算符
三、PromQL之函数

想必都知道要使用Msql,必须会用SQL,同样要使用Prometheus 就要掌握PromQL(Prometheus Query Language),它可以实时选择和汇聚时间序列数据,从而很方便的在Prometheus中查询和检索数据,结果可以展示为图表或者表格。

直观感受PromQL

在详细介绍PromQL之前,我们先通过几个简单的查询来直观感受PromQL。

  1. 查询应用已使用的堆内存大小,单位MB

jvm_memory_used_bytes / (1024*1024)

在这里插入图片描述
说明:图框中三条数据相加和即为已占用堆内存大小,默认的单位为B,图中已转为为MB

  1. 进阶版,查询应用已使用的堆内存大小,单位MB

sum(jvm_memory_used_bytes{area=“heap”} / (1024*1024))

在这里插入图片描述
说明:筛选出 area=“heap” 的堆内存数据,这个时候由6条数据变为3条数据,再通过求和函数对3条数据相加得到最终的值

  1. 保留两位小数,查询应用已使用的堆内存大小,单位MB

round(sum(jvm_memory_used_bytes{area=“heap”} / (1024*1024)), 0.01)

在这里插入图片描述

说明:这次相对1、2又多套了一个函数round,作用是保留两位小数,四舍五入

通过上面3个案例,从简单到复杂,我们看到PromeQL的写法跟SQL完全不相同,相对于SQL反而更容易理解。

时间序列

Prometheus 本身也是一种时间序列数据库,时间序列数据库主要按照一定得时间间隔产生一个个的数据点,以时间轴为横坐标,序列为纵坐标,如图所示:
在这里插入图片描述
每个数据点都代表一条时间序列数据,比如 某一时间的 jvm_memory_used_bytes{application=“provider”, area=“heap”, id=“PS Eden Space”, instance=“192.168.0.115:8000”, job=“provider”} 会在图中产生一个数据点,但同一个时间点可能会产生多条数据,只要指标名称或者标签集不同,就是不同的数据。另外如果时间点不同,指标名称或标签集相同,也会产生一个数据点。

时间序列的组成:
在这里插入图片描述

  • 指标(Metrics): 包括指标名称 和 一组标签集,如 jvm_memory_used_bytes{application=“provider”, area=“heap”, id=“PS Eden Space”, instance=“192.168.0.115:8000”, job=“provider”}
  • 时间戳(TimeStamp):默认精确到毫秒
  • 样本值(Value): 默认使用Float64 浮点类型

PromQL 的数据类型

Prometheus 一共有4种数据类型:

  1. 瞬时向量(Instant vector):每个时间序列包含单个样本,是给定时间戳的即时值

如:

jvm_memory_used_bytes

在这里插入图片描述
虽然查询出多条数据,但都是不同的数据

  1. 区间向量(Range vector):每个时间序列包含一段时间范围内的样本数据

如:表示获取1分钟内jvm_memory_used_bytes指标的采样数据

jvm_memory_used_bytes[1m]

在这里插入图片描述

  1. 标量(Scalar):浮点型数据值,但可以写成整数或浮点值

如:

23
-2.43
3.4e-9
0x8f
-Inf
NaN
  1. 字符串(String):字符串可以用单引号(‘’)、双引号(“”)、反引号(``)来指定

如:

"this is a string"
'these are unescaped: \n \\ \t'
`these are not unescaped: \n ' " \t`

作者其他文章:
Grafana 系列文章,版本:OOS v9.3.1

  1. Grafana 的介绍和安装
  2. Grafana监控大屏配置参数介绍(一)
  3. Grafana监控大屏配置参数介绍(二)
  4. Grafana监控大屏可视化图表
  5. Grafana 查询数据和转换数据
  6. Grafana 告警模块介绍
  7. Grafana 告警接入飞书通知

Spring Boot Admin 系列

  1. Spring Boot Admin 参考指南
  2. SpringBoot Admin服务离线、不显示健康信息的问题
  3. Spring Boot Admin2 @EnableAdminServer的加载
  4. Spring Boot Admin2 AdminServerAutoConfiguration详解
  5. Spring Boot Admin2 实例状态监控详解
  6. Spring Boot Admin2 自定义JVM监控通知
  7. Spring Boot Admin2 自定义异常监控
  8. Spring Boot Admin 监控指标接入Grafana可视化

http://www.niftyadmin.cn/n/27702.html

相关文章

【8】SCI易中期刊推荐——图像处理领域(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

ESP8266 ArduinoIDE 闪存文件操作系统

一、闪存文件系统基本操作 esp8266 的采用 SPIFFS 嵌入式文件系统,在内部 Flash 为 4M,其中 1M 用于存储程序,其他的空间有一部分用于系统,3M 中剩下的大部分空间可以用来存放文件。 其中这个空间大小是可以自定义的,…

回首2022展望2023

回首2022,虽然经历反复的居家办公,但仍然努力客服家庭与工作的时间冲突,很好的完成了开发任务。并在疫情变换间隙,带着部门同事做了几次团建,锻炼了队伍,提高了凝聚力。我同时坚信迟早会全面放开。在闲暇之…

列表元素的最大值,最小值,出现的次数和列表长度

1 获取列表中的最大元素和最小元素: 使用max和min可以分别获取一个列表中最大元素和最小元素的值,其语法格式为: max(list) 和min(list) 例:ls[12,34,56,87]#创建列表并赋给ls print(ls中最大元素值为:max(ls))#输出…

论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第3部分)

文章目录🚗 IV. Mothon Planning(运动规划)🔴 A. Path Planning(路径规划)🟠 B. Trajectory Planning(轨迹规划)🟡 C. Variational Methods(变分法…

Spring AOP【统一异常处理与统一数据格式封装】

Spring AOP【统一异常处理与统一格式封装】🍎一.统一异常处理🍒1.1 实现一个异常方法🍒1.2 统一处理异常代码的实现🍒1.3 统一处理所有异常🍎二.统一格式封装🍒2.1 实现一个返回数据方法🍒2.2 统…

【文件指针+文件顺序读写操作函数】

1.文件的打开和关闭 1.1 什么是文件指针 2.文件操作函数 2.1 fgetc函数和fputc函数2.2 fgets函数和fputs函数2.3 fscanf函数和fprintf函数2.4 fwrite函数和fread函数 1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件…

【web安全】SQL注入漏洞3--sqlmap工具教程

引言 我们在前面的文章已经介绍了SQL注入的挖掘方法以及渗透利用方法,这篇文章,我们学习一下如何利用工具高效的进行sqlmap 的渗透利用。 我们知道,手工制作payload并渗透利用是最基本的能力,但是这种方式的进展缓慢,…