在 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() < 86400 * 738 )*1000
对于node_time_seconds*1000
,您还需要添加作业名称,然后将其乘以 1000
或者使用probe_ssl_earliest_cert_expiryinstance=~"$target" - time()
查询相同的结果。这里的目标你需要添加实例名称或者你可以在grafana中添加变量然后从变量中选择实例。
【参考方案1】:
如果指标不匹配,您将得到一个空结果。原因是对于binary operatorvector1 <op> 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 中添加两个值的主要内容,如果未能解决你的问题,请参考以下文章