Prometheus时间序列选择器

        下面均以prometheus_http_requests_total为例子,即prometheus的HTTP请求数,在机器上装prometheus server即可。

        本篇简述prometheus的常用检索规则与工具:瞬间向量选择器、区间向量选择器与时间位移选择器。

瞬间向量选择器

        瞬间向量选择器:允许选择一组时间序列和给定时间戳的每个样本值的单个样本值。比如检索prometheus的HTTP请求数如下图:

prometheus_http_requests_total

Prometheus时间序列选择器_第1张图片

         

        指标名字后使用{},以逗号分隔标签列表进一步过滤这些时间序列。比如检索prometheusHTTP请求数且job标签为prometheus,instance实例标签为本地:9090,如下图

prometheus_http_requests_total{job="prometheus", instance="localhost:9090"}

Prometheus时间序列选择器_第2张图片

         可以使用标签匹配运算符

=

选择与提供的字符串完全相同的标签

!=

选择与提供的字符串不相同的标签

=~

选择正则表达式与提供的字符串(或子字符串)相匹配的标签

!~

选择正则表达式与提供的字符串(或子字符串)不匹配的标签

        如下检索实例不为本机:9090的:

prometheus_http_requests_total{instance!="localhost:9090"}

Prometheus时间序列选择器_第3张图片

        

        标签模糊匹配,“.*”属于正则表达式匹配任意及任意长字符,可配合“=~”和“!~”。比如 

prometheus_http_requests_total{instance=~"localhost:.*0"}

Prometheus时间序列选择器_第4张图片

         

比如在这里与prometheus_http_requests_total{instance!="localhost:9090"}等价的:

prometheus_http_requests_total{instance!~"localhost:.*0"}

       Prometheus时间序列选择器_第5张图片

        可以使用内置的__name__标签指定监控指标名称。比如能检索到prometheus_http_requests_total:

{__name__=~"prometheus_http_requests_.*"}

Prometheus时间序列选择器_第6张图片

 

区间向量过滤器

        与瞬时向量过滤器的工作方式类似,差异在于需定义时间选择的范围,通过时间范围选择器“ []” 进行定义,以指定应为每个返回的区间向量样本值中提取多长的时间范围。

时间范围通过数字来表示,单位可以使用以下其中之一的时间单位:

        s - 秒

        m - 分钟

        h - 小时

        d - 天

        w - 周

        y - 年

        简单而言就是只要近一段时间范围内的数据,比如1分钟内prometheus的HTTP请求次数:

prometheus_http_requests_total[1m]

Prometheus时间序列选择器_第7张图片

时间位移操作        

        前面的瞬间向量过滤器或区间向量过滤器,均以当前时刻为时间结束点,如果我要的是之前某个时间点的。就需要时间位移操作。

        位移操作的关键字为“offset”,需紧跟在选择器之后。

        比如查前100分钟前的prometheus的HTTP请求总数:

prometheus_http_requests_total offset 100m

Prometheus时间序列选择器_第8张图片

 

 

你可能感兴趣的:(云原生,prometheus,prometheus)