我正在寻找一个查询,以查看容器的图像标签在Prometheus的Pod中何时发生变化。我已经尝试了几种不同的方法,我认为我已经很接近了,但我似乎无法解决的问题是如何将当前记录与5分钟前的记录进行比较,并且只有在图像发生变化时才能得到结果,但仍然包括Pod和容器数据。我有这个查询到目前为止kube_pod_container_info{namespace="test"} != on(image) kube_pod_container_info{namespace="test"} offset 5m
我在这个查询中得到一个错误,因为有多个容器运行同一个镜像。所以理想情况下,我会匹配pod/container上的当前记录/过去记录,然后检查镜像是否不匹配。下面是一些数据的例子:现行数据
kube_pod_container_info{namespace="test",pod="test-pod", container="test-container-1", image="test-image:v1"}
kube_pod_container_info{namespace="test",pod="test-pod", container="test-container-2", image="test-image:v2"}
偏移5 m数据:
kube_pod_container_info{namespace="test",pod="test-pod", container="test-container-1", image="test-image:v1"}
kube_pod_container_info{namespace="test",pod="test-pod", container="test-container-2", image="test-image:v1"}
从上面的数据会想查询返回kube_pod_container_info{pod="test-pod", container="test-container-2", image="test-image:v2"}
,因为它的容器图像最近被更改为标签v2。让我知道,如果你需要更多的澄清。提前感谢的帮助!
1条答案
按热度按时间6pp0gazn1#
您可以使用类似于以下内容的内容:
在这里,我们检查
kube_pod_container_info
是否匹配除了image
之外的所有标签,但不匹配所有标签,那么这意味着image
发生了变化。编辑:查询以保存@JeffW建议的所有标签