PromQL是Prometheus的查询语言,用于从Prometheus中提取和处理时间序列数据。PromQL包含许多不同类型的表达式,函数和操作符,可以帮助用户定制他们的查询。下面是一个详细的PromQL语法教程:

  1. 时间序列选择器:

    • 度量名称:http_requests_total,返回具有指定度量名称的所有时间序列。
    • 标签选择器:http_requests_total{job="api-server"},返回带有指定标签的时间序列。
  2. 范围向量选择器:

    • 时间范围选择器:http_requests_total{job="api-server"}[5m],返回最近5分钟内的时间序列数据。
  3. 聚合操作符:

    • sum():对时间序列数据求和。
    • avg():对时间序列数据求平均值。
    • min():对时间序列数据求最小值。
    • max():对时间序列数据求最大值。
  4. 二元操作符:

    • +:加法。
    • -:减法。
    • *:乘法。
    • /:除法。
  5. 函数:

    • rate():计算时间序列数据的速率。
    • increase():计算时间序列数据的增长量。
    • histogram_quantile():计算直方图的分位数。
  6. 聚合操作:

    • by():按指定标签进行分组。
    • without():去除指定标签。
  7. 示例查询:

    • 查询所有时间序列数据:http_requests_total
    • 查询特定标签的时间序列数据:http_requests_total{job="api-server"}
    • 计算时间序列数据的速率:rate(http_requests_total[5m])
    • 按标签分组并计算每组时间序列数据的平均值:avg by (job) (http_requests_total)

通过学习PromQL语法和实践,用户可以更好地利用Prometheus来监控和分析他们的系统和服务。希望这个教程对你有帮助!