使用Prometheus
作为数据源,在中Grafana
,我有一个Table
可视化效果,使用以下查询列出了 kubernetescontainers
及其版本:
kube_pod_container_info{namespace="$namespace", pod=~"pod-.*"}
示例表如下所示:
| pod | Version |
| -------------| ------- |
| pod-firstapp | 123 |
| pod-secondapp| 456 |
这仅列出独特的如果任何给定 pod 有多个实例,则会出现该 pod 的版本,因此在容器升级或在升级过程中卡住的情况下,pod
会出现相同的两行,具有不同的版本,如下所示:
| pod | Version |
| -------------| ------- |
| pod-firstapp | 123 |
| pod-firstapp | 124 |
| pod-secondapp| 456 |
如果出现第二行,我该如何突出显示它?我能想到的唯一方法是通过,Value mappings
但我不知道是否可以设置它们来比较两个值。提前致谢。
答案1
您无法比较表格面板中不同列的值,但值映射仍然可以帮助您。
您可以使用查询:
count by (container, image) (
kube_pod_container_info{namespace="$namespace", pod=~"pod-.*"}
) * 0
+ on(container) group_left()
count by (container) (
count by (container, image) (
kube_pod_container_info{namespace="$namespace", pod=~"pod-.*"}
)
)
此后,您可以为列值添加值映射,并将 1 替换为,并将范围 2-999 替换为红色字体的all actual
内容。some are outdated
由于版本存储在标签中,因此无法自动找到哪个版本已经过时,您需要自己解决这个问题。
这不会为整行着色(据我所知,新版本的表格面板不可能做到这一点),但我相信应该足以满足您的需要。
如果你想更主动一点,你可以用表情创建警报
count by (container) (
count by (container, image) (
kube_pod_container_info{namespace="$namespace", pod=~"pod-.*"}
)
) > 1
它将返回运行有多个图像版本的容器。