Prometheus中将两个不同的指标分组后如何划分?

2024-01-04

我目前正在尝试对可用区内的 Kubernetes Pod 堆叠发出警报。我成功地使用了两种不同的指标,可以看到应用程序有多少个 pod 正在特定的可用区域上运行。但是,由于扩展,我希望警报基于百分比...因此,当某个可用区上运行特定百分比的 Pod(即超过 70%)时,我们可以发出警报。

我当前的查询:

sum(count(kube_pod_info{namespace="somenamespace", created_by_kind="StatefulSet"}) by (created_by_name, node) * on (node) group_left(az_info) kube_node_labels) by (created_by_name, az_info)

以及一些选定的输出:

{created_by_name="some-db-1",az_info="az1"} 1
{created_by_name="some-db-1",az_info="az2"} 4
{created_by_name="some-db-2",az_info="az1"} 2
{created_by_name="some-db-2",az_info="az2"} 3

例如,在上面的输出中,我们可以看到 4 个 db-1 pod 堆叠在 az2 上,而不是 1 个 pod 堆叠在 az1 上。在这种情况下,我们希望发出警报,因为 80% 的 db-1 Pod 堆叠在单个可用区上。

由于输出包含多个可用区上的多个 Pod,感觉使用单个 Prometheus 查询可能很难获得百分比,但想知道是否有经验丰富的人可以提供解决方案?

Thanks!


  your_expression 
/ ignoring(created_by_name) group_left
  sum without(created_by_name)(your_expression)

会给你每个整体的比例,然后你可以做> .8关于这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prometheus中将两个不同的指标分组后如何划分? 的相关文章

随机推荐