浏览 66
扫码
PromQL是Prometheus的查询语言,用于从Prometheus中提取和处理时间序列数据。PromQL包含许多不同类型的表达式,函数和操作符,可以帮助用户定制他们的查询。下面是一个详细的PromQL语法教程:
-
时间序列选择器:
- 度量名称:
http_requests_total
,返回具有指定度量名称的所有时间序列。 - 标签选择器:
http_requests_total{job="api-server"}
,返回带有指定标签的时间序列。
- 度量名称:
-
范围向量选择器:
- 时间范围选择器:
http_requests_total{job="api-server"}[5m]
,返回最近5分钟内的时间序列数据。
- 时间范围选择器:
-
聚合操作符:
-
sum()
:对时间序列数据求和。 -
avg()
:对时间序列数据求平均值。 -
min()
:对时间序列数据求最小值。 -
max()
:对时间序列数据求最大值。
-
-
二元操作符:
-
+
:加法。 -
-
:减法。 -
*
:乘法。 -
/
:除法。
-
-
函数:
-
rate()
:计算时间序列数据的速率。 -
increase()
:计算时间序列数据的增长量。 -
histogram_quantile()
:计算直方图的分位数。
-
-
聚合操作:
-
by()
:按指定标签进行分组。 -
without()
:去除指定标签。
-
-
示例查询:
- 查询所有时间序列数据:
http_requests_total
。 - 查询特定标签的时间序列数据:
http_requests_total{job="api-server"}
。 - 计算时间序列数据的速率:
rate(http_requests_total[5m])
。 - 按标签分组并计算每组时间序列数据的平均值:
avg by (job) (http_requests_total)
。
- 查询所有时间序列数据:
通过学习PromQL语法和实践,用户可以更好地利用Prometheus来监控和分析他们的系统和服务。希望这个教程对你有帮助!