#yyds干货盘点#Prometheus 之 PromQL 介绍

Prometheus 提供了一种功能强大的表达式语言 PromQL(Prometheus QueryLanguage)PromQL 允许用户实时选择和汇聚时间序列数据,是 Prometheus 自己开发的数据查询 DSL 语言,使PromQL用这个查询语言能够进行各种聚合、分析和计算,使管理员能够根据指标更好地了解系统性能。

时序数据库(Time Series Database,TSDB)用于保存时间序列(按prometheus监控平台组件时间顺序变化)的海量数据,是一种高性系统运维工资一般多少能、低成本、稳定可靠的专业化数据库。它可以提供高效读写、高其他业务收入压缩比低成本存储、降精度、插值、系统运维工作内容多维聚合计算和查询功能,解决由于设备采集点数据量巨大、数据采集频率高而造成的存储prometheus监控k8s成本高、写入和查询分析效率低的问题。时序数据库广泛应用于物联网监控系统、企业能源其他货币资金管理系统、生产安全监控、电力检测系统等行业场景。

时间序列数据的特性如下:

  • 数据写入特点——写入平稳、持续、高并发高吞吐;写多读少,在写操作上时序数据能达到 95%以上;无更新实时写入最近生成的数据。
  • 数据查询特点——按时间范围读取一段时间的数据;对最近生成的数据读取概率高,对历史数据查其他货币资金询概率低;按照数据点的不同密集度实现多精度查询。
  • 数据存储特点——数据系统/运维存储量比较大;具有时效性,数据通常会有一个保存周期;多精度数据存储。

对时序数据库的基本要求如下:

  • 能够支撑高并发、高吞吐的写入
  • 交互级的聚合查询,能够达到低查询延迟
  • 依据场景设计可以支撑海量数据存储
  • 在线其他应用服务场景中,需要高可用架构支撑
  • 针对写入和存储量的要求,应用环境底层需其他综合收益要分布式架构支持

PromQL 虽然以 QL 结尾,但它不是类似 SQL 的语言,因为在时间序列上执其他业务收入行计算类型时,SQL 语言相对缺乏表达能力。而其他应付款 PromQL 语言表现力非常丰富,可以使用标签进行任意聚合,还可以其他和其它的区别使用标签将不同的指标连接在一起进行算术操作。内置了日期和数学等很多的函数可供使用。

一条 Prometheus 数据其他应收款会包含一个指标名称(metrprometheus监控网络设备ic name)和一个或多个标签(label)以及 metric其他value。metric name 加一组 label 作其他和其它的区别为唯一标识来定义 time series,也就是时间线。在查询时,支持根据 labels 条件查找 time series,支持简PromQL单的条件也支持复杂的条件。

在 Prometheus 的表达式语言中,PromQ系统/运维L 数据类型归类为以下四种:

  • 即时向量(instant vector),是指同一时刻的一组时间序列,每个时间序列包含一个样本,所有样本prometheus监控平台组件共享相同的时间戳,即每个时序只有一个点。
  • 区间向量(range vector),是指在任何一个时间范围内的一组时间序列,包含每个时间序列随时间变化的一系列数据点,这时每个时序有多个点。
  • 系统运维工资一般多少量(scalar),即纯量数据,一个简单的数字浮点值,只有一个数字,没有时序。
  • 字符串其他货币资金包括哪些内容(string),一个目前未被prometheus监控使用的简单字符串值。

Prometheus 为使用者提供了内置的聚合操作符,这些聚合操作符仅仅适用于对单个即时向量进行聚合操作。它们可以将即时向量聚合后生成一个包含较少元素的新的时间序列prometheus