在 Prometheus 中添加两个值

Posted

技术标签:

【中文标题】在 Prometheus 中添加两个值【英文标题】:Adding two values in Prometheus 【发布时间】:2020-05-02 23:02:53 【问题描述】:

我们需要在 Prometheus 中添加两个查询的结果。片段如下:

(probe_ssl_earliest_cert_expiryjob="SSL-expiry" - time() < 86400 * 738 )*1000 + (node_time_seconds*1000)

但结果显示没有数据如下图:

【问题讨论】:

请检查查询是否正确。我认为查询不正确。 @SachinArote 当我们单独运行时,这两个查询都给出了结果当同时添加它们时没有结果。如果我做错了什么,请提出建议 这部分查询工作正常我刚刚检查了我的普罗米修斯实例(probe_ssl_earliest_cert_expiryjob="SSL-expiry" - time() &lt; 86400 * 738 )*1000 对于node_time_seconds*1000,您还需要添加作业名称,然后将其乘以 1000 或者使用probe_ssl_earliest_cert_expiryinstance=~"$target" - time()查询相同的结果。这里的目标你需要添加实例名称或者你可以在grafana中添加变量然后从变量中选择实例。 【参考方案1】:

如果指标不匹配,您将得到一个空结果。原因是对于binary operatorvector1 &lt;op&gt; vector2

vector1 和 vector2 生成一个由以下元素组成的向量 vector1 中 vector2 中存在完全匹配的元素 标签集。其他元素被删除。

您必须至少添加一个on()ignoring() vector matching 关键字,指定与(名称和)值匹配的标签(名称)。如果您有一对多匹配,您可能需要添加分组说明。

在以下表达式中填写???,以便标签匹配:

(probe_ssl_earliest_cert_expiryjob="SSL-expiry" - time() < 86400 * 738 )*1000 + ON(???) (node_time_seconds*1000)

【讨论】:

以上是关于在 Prometheus 中添加两个值的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus部署及服务发现

我的 Prometheus 到底啥时候报警?

Prometheus部署及服务发现

Prometheus Install

Prometheus Install

为啥 Prometheus 不会在不可见的指标上引发错误?