首页 > 其他分享 >PromQL:高效查询时间序列数据的利器

PromQL:高效查询时间序列数据的利器

时间:2024-09-25 20:21:49浏览次数:9  
标签:使用率 查询 利器 PromQL 时间 序列 total

PromQL(Prometheus Query Language)是Prometheus监控系统的查询语言,专门用于处理时间序列数据。它允许用户从Prometheus中提取、操作和显示数据,通常用于生成实时监控图表或告警规则。


1. 基本数据类型

PromQL的查询结果有四种数据类型:

  • 瞬时向量(Instant Vector):某一时刻的一组时间序列数据。
  • 范围向量(Range Vector):一段时间内的一组时间序列数据。
  • 标量(Scalar):单一的浮点数值。
  • 字符串(String):用于呈现文本数据。

2. 基本查询

PromQL查询的基础是时间序列选择器,其形式如下:

http_requests_total

这条查询返回了所有名为http_requests_total的时间序列。可以通过加标签来缩小范围:

http_requests_total{method="GET", status="200"}

这会返回仅包含标签method="GET"status="200"的时间序列。

3. 操作符

PromQL支持多种操作符,主要分为两类:

  • 算术操作符:如+, -, *, /, %,用于对时间序列执行算术运算。
  • 比较操作符:如==, !=, >, <,用于比较时间序列中的数值。

举个例子,计算每秒的HTTP请求数:

rate(http_requests_total[5m])

rate函数计算过去5分钟的HTTP请求速率。

4. 函数

PromQL中有很多函数可以对时间序列进行复杂操作,如:

  • rate(): 计算某个时间范围内的每秒增长率。
  • avg(), sum(), min(), max(): 用于聚合时间序列数据。
  • increase(): 计算时间序列在某一段时间内的增加量。

例如,计算每分钟的平均CPU使用率:

avg(rate(cpu_usage_total[1m]))

5. 告警规则

PromQL也常用于定义告警规则,例如:

avg_over_time(cpu_usage_total[5m]) > 0.8

这条规则会在过去5分钟的CPU使用率超过80%时触发告警。

6. 聚合操作

PromQL允许用户通过聚合操作对数据进行汇总,比如:

  • sum: 对时间序列求和。
  • avg: 计算时间序列的平均值。

例如,汇总所有实例的内存使用情况:

sum(memory_usage_bytes)

示例:

假设你想要查看每个实例的CPU使用率,并找出使用率超过80%的实例:

cpu_usage_total{job="app"} > 0.8

这个查询会返回所有CPU使用率超过80%的实例的时间序列数据。



标签:使用率,查询,利器,PromQL,时间,序列,total
From: https://blog.51cto.com/yingnanxuezi/12111880

相关文章

  • Mongodb 常见操作:查询,排序,查看索引,创建索引等
    //insertdb.books.insert([{_id:12,item:"pencil1",qty:51,type:"no.1"},{_id:21,item:"pencil1",qty:52,type:"no.2"},{_id:31,item:"pencil1",qty:53,type:"no.3"},])db.b......
  • 基于Java对数据库的增加和查询操作
     在开始编码前,我们需要先给IDEA配置下面两个jar文件:第一步:我们先进行数据库的连接publicclassDBUtils{/***打开数据库*///优化:让加载器等操作,只做一次publicstaticStringdriver;//驱动地址publicstaticStringurl;//数据库的地......
  • prometheus学习笔记之PromQL
    一、PromQL语句简介官方文档:https://prometheus.io/docs/prometheus/latest/querying/basics/Prometheus提供⼀个函数式的表达式语⾔PromQL(PrometheusQueryLanguage),可以使⽤户实时地查找和聚合时间序列数据,表达式计算结果可以在图表中展示,也可以在Prometheus表达式浏览器中以......
  • 深入探索 RUM 与全链路追踪:优化数字体验的利器
    作者:梅光辉(重彦)背景介绍随着可观测技术的持续演进,多数企业已广泛采用APM、Tracing及Logging解决方案,以此强化业务监控能力,尤其在互联网行业,产品的体验直接关系着用户的口碑,决定了市场命运,使得RUM(真实用户监控)日益受到重视。然而,在面对由后端服务故障引起的体验问题时(例如,后......
  • 查询YOLO标签共有几类。针对文件夹中所有的xml文件,查询一下xml文件中object下的name共
    importosimportxml.etree.ElementTreeasETdefcount_object_names(folder_path):#存放不同name的集合names_set=set()#遍历文件夹中的所有文件forfilenameinos.listdir(folder_path):iffilename.endswith('.xml'):#确保处理......
  • 【转】SQL SERVER死锁查询,死锁分析,解锁,查询占用
    简单点的处理方法:1、查询死锁的表selectrequest_session_idspid,OBJECT_NAME(resource_associated_entity_id)tableNamefromsys.dm_tran_lockswhereresource_type='OBJECT'2、解锁declare@spidintSet@spid=79--锁表进程declare@sqlvarchar(1000)set@sql......
  • 【C#生态园】选择合适的自动化工具:满足团队需求的利器大比拼
    自动化服务器和工具全面比较:选择最适合你团队的利器前言在当今软件开发领域,持续集成和持续部署已经成为了提高效率、降低风险的关键利器。各种自动化服务器和工具应运而生,以满足不同团队和项目的需求。本文将介绍几种流行的自动化服务器和工具,包括Jenkins、TeamCity、Oct......
  • .NET 高级音频处理利器 NAudio 库
    目录前言项目介绍项目说明常用类常用接口项目示例1、创建项目2、NuGet安装NAudio与NAduio.Core包3、使用说明4、录制文件代码5、播放文件代码6、注意项目总结最后前言NAudio是一个开源音频库,用于在C#应用程序中处理音频。它提供了丰富的属性和方法,使我......
  • 推荐7款.NET开源且功能强大图表库,效率提升利器!
    前言今天大姚给大家推荐7款.NET开源、免费、高效、功能强大图表库,这些库旨在助力你迅速实现图表开发需求,提升项目效率与质量。LiveCharts2LiveCharts2是一个.NET开源、简单、灵活、交互式且功能强大的.NET图表、地图和仪表库,现在几乎可以在任何地方运行如:Maui、UnoPlatform、Blazo......
  • Vue3 - 详细实现安装引入高德地图并查询展示周边交通/教育/医疗/商场/生活/娱乐等POI
    前言Vue2版本,请访问这篇文章。在vue3|nuxt3项目开发中,详解高德地图根据当前定位获取周边附近的商圈,vue3高德地图获取周边商圈并将这些地址位置列出来供用户点击跳转和选择,获取当前位置或指定区域周边的交通出行、学校教育、医院诊所、商场购物、生活娱乐、旅游景......