博客
关于我
Prometheus监控教程:使用PromQL查询监控数据(上篇)
阅读量:795 次
发布时间:2023-03-04

本文共 1002 字,大约阅读时间需要 3 分钟。

一、PromQL表达式

PromQL是一种由Prometheus提供的函数式表达式语言,专为处理和聚合时间序列数据而设计。它允许用户实时查询和操作数据,并将结果以表格或图表形式展示或通过HTTP API提供给外部系统使用。与传统SQL不同,PromQL在处理时间序列数据方面具有更强大的表达能力,支持丰富的聚合和运算功能。

1.1、语言数据类型

PromQL表达式中,一个子表达式可以表示以下四种数据类型之一:

  • Instant vector(瞬时矢量):一组时间序列数据,每个时间序列包含一个时间戳对应的数据点,且所有时间序列具有相同的时间戳。

  • Range vector(范围矢量):一组时间序列,包含某一时间范围内的所有数据点。

  • Scalar(标量):一个数值类型,可以是浮点数或整数。

  • String(字符串):当前未被支持。

1.2、Literals数据格式

1.2.1 String literals(字符串字面量):

字符串可以通过单引号(‘’)、双引号(“”)或反引号(``)包裹表示。

1.2.2 Float literals(浮点字面量):

浮点数格式为:-[.(digits)],例如:-2.43

1.3、Time series(时间序列)选择器

1.3.1 Instant vector selectors(即时矢量选择器):

即时矢量选择器用于选择一组时间序列及其对应的特定时间戳值,需指定指标名称。

示例:

查询http_requests_total指标的所有时间序列表达式:

http_requests_total

通过在花括号{}中添加逗号分隔的标签匹配器列表,可以进一步筛选时间序列。

示例:

http_requests_total{job="prometheus",group="canary"}

支持以下标签匹配运算符:

  • =:等于

  • !=:不等于

  • =~:选择与字符串匹配的标签(正则表达式匹配)

  • !~:选择不与字符串匹配的标签

1.3.2 Range vector selectors(范围矢量选择器):

范围矢量选择器的工作原理与即时矢量选择器类似,唯一区别在于选择的时间序列是一个时间范围内的数据点。

示例:

http_requests_total{job="prometheus"}[5m]

上述表达式表示过去5分钟内的http_requests_total指标数据。

转载地址:http://rexfk.baihongyu.com/

你可能感兴趣的文章
SpringBoot为什么易学难精?
查看>>
poj 2545 Hamming Problem
查看>>
poj 2723
查看>>
poj 2763 Housewife Wind
查看>>
Qt笔记——模型/视图MVD 文件目录浏览器软件
查看>>
POJ 2892 Tunnel Warfare(树状数组+二分)
查看>>
poj 2965 The Pilots Brothers' refrigerator-1
查看>>
poj 3026( Borg Maze BFS + Prim)
查看>>
POJ 3041 - 最大二分匹配
查看>>
POJ 3041 Asteroids(二分匹配模板题)
查看>>
Qt笔记——标准文件对话框QFileDialog
查看>>
poj 3083 Children of the Candy Corn
查看>>
POJ 3083 Children of the Candy Corn 解题报告
查看>>
POJ 3253 Fence Repair C++ STL multiset 可解 (同51nod 1117 聪明的木匠)
查看>>
Qt笔记——控件总结
查看>>
poj 3262 Protecting the Flowers 贪心
查看>>
poj 3264(简单线段树)
查看>>
Qt笔记——布局管理三件套分割窗口、停靠窗口和堆栈窗口
查看>>
poj 3277 线段树
查看>>
POJ 3349 Snowflake Snow Snowflakes
查看>>