Prometheus 内置函数:absent() 用于检测一个瞬时向量中是否缺少特定的样本

absent() 函数是一个标量函数,用于检测一个瞬时向量中是否缺少特定的样本。如果指定的样本不存在,absent() 函数返回1(true),否则返回0(false)。

作用

absent() 函数是一个标量函数,用于检测一个瞬时向量中是否缺少特定的样本。

如果指定的样本不存在,absent() 函数返回 1(true)。

如果指定的样本存在,absent() 函数返回 0(false)。

这对于在查询中检测缺失的数据点非常有用,尤其是在与聚合操作(如 sum() 或 avg())结合使用时。

absent() 函数通常用于构建条件查询或警报规则,以便在数据缺失时触发警报。例如,你可以使用 absent() 函数来检测某个服务是否没有报告任何数据,这通常表示服务可能出现了问题。

语法

absent() 函数的语法如下:

absent(v instant-vector)

参数说明:

  • v instant-vector: 是你想要检查样本存在性的瞬时向量。

示例

假设存在一个 prometheus_http_requests_total 指标和一个根本不存在的 prometheus_http_requests_total 指标,然后通过 absent() 函数判断指标是否真的存在。如下图:

Prometheus 内置函数:absent() 用于检测一个瞬时向量中是否缺少特定的样本

Prometheus 内置函数:absent() 用于检测一个瞬时向量中是否缺少特定的样本

如果你想要检查在当前时间点上是否有一个特定的标签组合(如 {label1="value1", label2="value2"})的样本存在。你可以使用 absent() 函数来实现这一点:

absent(prometheus_http_requests_total{handler="/api/v1/rules",job="prometheus"})

如果 prometheus_http_requests_total 指标在当前时间点没有与 {handler="/api/v1/rules",job="prometheus"} 匹配的样本,absent() 函数将返回1。如果样本存在,则返回0。

注意:absent() 函数与 absent_over_time() 函数不同,后者用于检测在指定时间范围内是否缺少数据点。absent() 函数仅检查当前时间点的样本存在性。

学习,学习,再学习!学,然后知不足。 —— 列宁
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号