前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直观感受PromQL及其数据类型

直观感受PromQL及其数据类型

作者头像
阿提说说
发布2023-02-03 11:22:19
7830
发布2023-02-03 11:22:19
举报
文章被收录于专栏:Java技术进阶Java技术进阶

由于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):每个时间序列包含单个样本,是给定时间戳的即时值

如:

代码语言:javascript
复制
jvm_memory_used_bytes

虽然查询出多条数据,但都是不同的数据

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

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

代码语言:javascript
复制
jvm_memory_used_bytes[1m]
  1. 标量(Scalar):浮点型数据值,但可以写成整数或浮点值

如:

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

如:

代码语言:javascript
复制
"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可视化
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 直观感受PromQL
  • 时间序列
  • PromQL 的数据类型
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档