浏览 522
扫码
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来监控和分析他们的系统和服务。希望这个教程对你有帮助!
