prometheus - prometheus 规则因“不允许多对多匹配”而失败
问题描述
我有一个开箱即用的 kube-prometheus v0.3 设置,其中一个规则:
alert: KubeletTooManyPods
expr: max
by(node) (max by(instance) (kubelet_running_pod_count{job="kubelet"}) *
on(instance) group_left(node) kubelet_node_name{job="kubelet"}) / max by(node)
(kube_node_status_capacity_pods{job="kube-state-metrics"}) > 0.95
正在触发以下错误:
在操作的右侧找到匹配组 {instance="10.0.1.151:10250"} 的重复系列:[{ name ="kubelet_node_name", endpoint="https-metrics", instance="10.0.1.151 :10250", job="kubelet", metrics_path="/metrics", namespace="kube-system", node="ip-10-0-1-151.eu-west-1.compute.internal", 服务="prometheus-operator-kubelet"}, { name ="kubelet_node_name", endpoint="https-metrics", instance="10.0.1.151:10250", job="kubelet", metrics_path="/metrics", namespace= "kube-system", node="ip-10-0-1-151.eu-west-1.compute.internal", service="kubelet"}]; 不允许多对多匹配:匹配的标签在一侧必须是唯一的
这条规则有什么问题?
解决方案
您应该检查 kube-system 命名空间中的服务,在您的情况下可以有重复的服务,“prometheus-operator-kubelet”和“kubelet”。
推荐阅读
- r - 向数据框添加一列,跳过粘贴 -
- mysql - 如何从 mysql 查询中获取数据结果以及查询返回的行数?
- php - 使用 Google Maps API 生成随机地址
- angular - 使用验证器创建自定义 FormControl
- reporting-services - 通过 ODBC 连接在 SSRS 中调用 Oracle 存储过程
- html - 如何在 html 代码中显示“您的广告”图像?(对于网站)
- angular - 角材料单选按钮样式不起作用
- python - python - 如何从python列表中调用具有某些关键字的特定元素?
- c# - 在 C# 应用程序中使用 Azure REST API 显示没有响应
- python-3.6 - Python3 中的 Gauss-Seidel 方法,在每个周期开始时,为什么我必须将最近解决方案的数组设置为零?