写点什么

Prometheus 基础查询(一)

用户头像
耳东@Erdong
关注
发布于: 刚刚

Prometheus 提供了一个名为 PromQL (Prometheus query language) 的函数式查询语言,它允许用户实时选择和聚合时间序列数据。表达式的结果可以显示为图形,在 Prometheus 的表达式浏览器中作为表格数据查看,或者由外部系统通过 HTTP API 使用。

查询表达式语言数据类型

在 Prometheus 的表达式语言中,表达式或子表达式可以被计算为以下四种类型之一:


  • Instant vector 瞬时向量是一组时间序列,包含每个时间序列的单个样本,所有数值共享相同的时间戳

  • Range vector 范围向量是一组时间序列,包含每个时间序列随时间变化的一系列数据点

  • Scalar 标量是一个简单的数字浮点值

  • String 简单的字符串值,目前未使用


根据用例的不同(例如,当图形化和显示表达式的输出时),只有一些类型是合法的,作为用户指定表达式的结果。例如,返回即时向量的表达式是唯一可以直接绘制图形的类型。

Literal

字符串类型

字符串可以指定为单引号、双引号或反引号中的文字。

PromQL 遵循与 Go 相同的转义规则。在单引号或双引号中,反斜杠开始转义序列,转义序列后面可能跟着 a, b, f, n, r, t, v 或\。可以使用八进制(\nnn)或十六进制(\xnn, \unnnn 和\ unnnnnnn)来提供特定的字符。

反引号内不处理转义。与 Go 不同的是,Prometheus 不会丢弃反引号内的换行符。

例子:


```

"this is a string"

'these are unescaped: \n \\ \t'

`these are not unescaped: \n ' " \t`

```

浮点类型

标量浮点值可以写成文字整数或浮点数的格式(为了更好的可读性,只包含空格):


```

[-+]?(

[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?

| 0[xX][0-9a-fA-F]+

| [nN][aA][nN]

| [iI][nN][fF]

)

```

比如:

```

23

-2.43

3.4e-9

0x8f

-Inf

NaN

```

子查询

子查询允许您针对给定的范围和分辨率运行即时查询。子查询的结果是一个范围向量。

语法: <instant_query> '[' <range> ':' [<resolution>] ']' [ @ <float_literal> ] [ offset <duration> ]

<resolution>这个选项是可选的。默认值是全局计算间隔。

操作符

Prometheus 支持许多二进制和聚合操作符。这些在 PromQL 操作符页面中有详细描述。

函数

Prometheus 支持几个对数据进行操作的函数。PromQL 函数页面详细描述了这些函数。

评论

PromQL 支持以 # 开头的行注释。例子:

```

# This is a comment

```

发布于: 刚刚阅读数: 2
用户头像

耳东@Erdong

关注

还未添加个人签名 2020.05.24 加入

主要研究分享运维技术,专注于监控、CICD、操作系统、云原生领域,公众号【耳东学堂】,知识星球同名,坚持原创,希望能和大家在运维路上结伴而行 邮箱:erdong@mail.erdong.site

评论

发布
暂无评论
Prometheus 基础查询(一)