PromQL

最后更新于:2022-04-02 03:00:01

[TOC] > [官方手册](https://prometheus.io/docs/prometheus/latest/querying/basics/#instant-vector-selectors) ## PromQL 一条 Prometheus 数据由一个指标名称(metric)和 N 个标签(label,N >= 0)组成的 ``` promhttp_metric_handler_requests_total{code="200",instance="192.168.0.107:9090",job="prometheus"} 106 ``` - 这条数据的指标名称为 promhttp_metric_handler_requests_total,并且包含三个标签 code、instance 和 job,这条记录的值为 106 - 指标相当于表明,标签相当于字段,记录的值表示值,时间表示主键 ### 条件 ``` =:选择与提供的字符串完全相等的标签。 !=:选择不等于提供的字符串的标签。 =~:选择与提供的字符串进行正则表达式匹配的标签。 !~:选择不与提供的字符串正则表达式匹配的标签。 ``` ### 时间 ``` ms - milliseconds s - seconds m - minutes h - hours d - days - assuming a day has always 24h w - weeks - assuming a week has always 7d y - years - assuming a year has always 365d ``` ### 聚合函数 ``` sum (计算尺寸总和) min (选择最小尺寸) max (选择最大尺寸) avg (计算尺寸的平均值) group (结果向量中的所有值均为1) stddev (计算总体尺寸的标准偏差) stdvar (计算总体标准方差) count (向量中元素的数量) count_values (计数具有相同值的元素数) bottomk (按样本值最小的k个元素) topk (按样本值最大k个元素) ``` ## 实例 ### 直接搜索 ``` prometheus_http_requests_total ``` ### 条件搜索 ``` prometheus_http_requests_total{job="prometheus"} http_requests_total{status!~"4.."} ``` ### 查看某个时间 ``` http_requests_total[5m] ``` ### 求平均值 ``` rate(http_requests_total[5m]) ```
';