当前位置: 首页 > 知识库问答 >
问题:

在将普罗米修斯的两个不同指标分组后如何划分?

容寒
2023-03-14

我目前正试图提醒Kubernetes吊舱堆积在可用区域内。我已经成功地使用了两个不同的指标,可以看到一个应用程序有多少吊舱在特定的可用性区域上运行。但是,由于缩放,我希望警报是基于百分比的。。。因此,我们可以在一个AZ上运行特定百分比的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吊舱堆叠在az2上,而不是az1上的1个吊舱。在这种情况下,我们希望发出警报,因为80%的db-1吊舱堆放在一个AZ上。

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

谢谢

共有1个答案

穆商震
2023-03-14
  your_expression 
/ ignoring(created_by_name) group_left
  sum without(created_by_name)(your_expression)

将为您提供每个的整体比率,然后您可以执行

 类似资料:
  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • 我试图使用现有的Prometheus(集群外部)从EKS集群内部聚合所有的指标,EC2(CPU、ram、disk)和POD(CPU、ram、disk)。我开始使用node-exporter、kube-state-metrics添加数据,但我一直坚持部署metrics-server。使用helm I conf并安装它,和正在提取数据,但是有人能告诉我如何将所有这些都提取到外部的Prometheus吗

  • 我把普罗米修斯和格拉法纳部署到我的集群里。 当我打开仪表板时,我不会获得pod CPU使用情况的数据。 当我检查Prometheus UI时,它显示pods 0/0向上,但是我的集群中有许多pods在运行。

  • 我在普罗米修斯使用spring boot2。我们使用Postgres作为数据库。普罗米修斯url没有获取数据库指标。 任何参考资料都会很有帮助。 我已经试过了 当我到达终点/普罗米修斯时,我得到了这个错误

  • 我正在使用带Spring靴2的SCDF。x metrics和SCDF metrics collector从我的Spring Boot应用程序收集指标。我真的不理解收集器关于聚合度量(aggregateMetrics)数据的逻辑。 当我获取为我的流收集的指标列表时,我只有以开头的指标,因此我只有平均值。我尝试了所有方法来查看其他指标,就像endpoint公开的指标一样。 我想我误解了指标的聚合方式。