随着时间的推移,我们希望通过节点/ip的组合来看到公开度量的差异。节点或ips可以在任何给定的点上存在,但在另一个点上不一定存在。
度量本身(some_metric)是“量规”类型,在本例中,可能是server1宣布IP 10.0.0.1,server2宣布10.0.0.2。现在让我们假设server1不皂化,所以现在server2也宣布10.0.0.1。
因此,目前只有server2宣布这两个is:count(some_metric) by (node,ip)
some_metric{node=server2,ip=10.0.0.1} = 1
some_metric{node=server2,ip=10.0.0.2} = 1一个小时前,每个节点都在更新每个IP:count(some_metric offset 1h) by (node,ip)
some_metric{node=server1,ip=10.0.0.1} = 1
some_metric{node=server2,ip=10.0.0.2} = 1将server1带回联机,将产生如下查询结果:count(some_metric) by (node,ip)
some_metric{node=server1,ip=10.0.0.1} = 1
some_metric{node=server2,ip=10.0.0.2} = 1我们需要的是,在一段时间内(比方说30分钟),对每一个宣布IP的时间负责。所以我们最终会有这样的结果:
some_metric{node=server1,ip=10.0.0.1} = 2
some_metric{node=server2,ip=10.0.0.2} = 1
some_metric{node=server2,ip=10.0.0.1} = 1发布于 2022-06-21 11:46:31
我觉得这样就行了。只是把它留给其他可能觉得有用的人:
count(increase(some_metric[30m])) by (node,ip)
当然,其他选择是受欢迎的:)
https://stackoverflow.com/questions/72699943
复制相似问题