【监控】PromQL必知必会
PromQL(prometheus Query Language)是prometheus自己开发的数据查询DSL语言,语言表现非常丰富,内置函数,在日常数据可视化(grafana)及rule告警中使用
1.PromQL数据类型
在Prometheus的表达式语言中,PromQL数据类型归类为以下四种:
- 瞬时向量(instant vector):是指同一时刻的一组时间序列,每个时间序列包含一个样本,所有样本共享相同的时间戳,即每个时序只有一个点
- 区间向量(range vector):是指在任何一个时间范围内的一组时间序列,包含每个时间序列随时间变化的一系列数据点,这时每个时序有多个点
- 标量(scalar),即纯量数据,一个简单的数字浮点值,只有一个数字,没有时许
- 字符串(string):简单字符串值
2.时间序列过滤器
瞬时向量过滤器
允许在指定的时间戳内选择一组时间序列和每个序列的单个样本值。
例如:选择指标名称为node_cpu_seconds_total的所有时间序列
node_cpu_seconds_total
可以加标签过滤,标签匹配模式支持完全匹配和正则匹配:
- =:选择与提供的字符串完全相同的标签
- !=: 选择与提供的字符串不相同的标签
- =~选择正则表达式与提供的字符串(或子字符串)相匹配的标签
- !~ 选择正则表达式与提供的字符串(或子字符串)不匹配的标签
node_cpu_seconds_total{mode=~"idle|user|syste