繁体   English   中英

Prometheus:检测指标的创建(同名,不同标签)

[英]Prometheus: detect creation of metrics (same name, different labels)

假设我们使用以下时间纪元值created了指标(每个值都是在前一个值之后收集的,因此实例xy不能同时可用)

created{instance:'x'} 1567000047
created{instance:'x'} 1567000047
created{instance:'x'} 1567000047
created{instance:'y'} 1567000050
created{instance:'y'} 1567000050
created{instance:'y'} 1567000050

标签instance值是动态的。

如何使用 PromQL 查询数据以检测在纪元值 1567000047 时创建了一个实例,并在 1567000050 处创建了另一个实例?

我想在 Grafana 之后绘制值以查看何时创建新实例。 或者至少我如何总结过去 3 小时内创建的实例数量(使用现有值)?

我无法对这些值sum ,因为我会得到一条直线。 就我所见,您无法检测到从丢失到某物的变化,例如只能从0值中检测到。

当我阅读您的请求时,您想知道created指标更改的次数而不管实例标签。

您的第一个问题是关于忽略实例标签,因为为了计算随时间变化的数量,您需要有一个将向量转换为向量的函数。 这在 Prometheus 2.7 版之前不存在。 如果您有旧版本的 prometheus,则必须使用adhoc recoding rule

我假设您最近安装了 Prometheus,并且可以使用子查询。 以下应提供一个单一的度量向量,为您提供上次创建的时间(过去 3 小时内):

(max(created))[3h:]

一旦你得到它,你就可以使用changes()函数来计算更改的数量。 添加一个来说明第一次创建:

changes((max(created))[3h:]) + 1

这应该为您提供过去 3 小时内创建的实例数。

请注意,Prometheus 上的子查询可能很繁重,使用记录规则会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM