普罗米修斯 - 不允许多对多匹配

标签 prometheus

我第一次尝试使用矢量匹配时,我收到一条错误消息,提示“不允许多对多匹配:匹配标签在一侧必须是唯一的”,我不明白为什么。

这是我的表达:

sum(rate(container_cpu_usage_seconds_total{image!="",pod_name=~"sentry.*",container_name!="POD"}[5m])) by (container_name) 
* on (container_name) group_left(container) 
avg by (container) (kube_pod_container_resource_requests_cpu_cores{container=~"sentry.*"})

两个向量的结果是
sum(rate(container_cpu_usage_seconds_total{image!=“”,pod_name=~“sentry.*“,container_name!=“POD”}[5m])) by (pod_name, namespace,container_name)


{container_name="sentry-web",namespace="infrastructure",pod_name="sentry-web-65757bf8f6-cgmsw"}
{container_name="sentry-statsds",namespace="infrastructure",pod_name="sentry-statsd-849699fb56-jnljm"}
{container_name="sentry-k8s",namespace="infrastructure",pod_name="sentry-k8s-66b9b88758-stn5x"}
{container_name="sentry-cron",namespace="infrastructure",pod_name="sentry-cron-7dcdfc5688-qh55k"}
{container_name="redis-exporter",namespace="infrastructure",pod_name="sentry-redis-exporter-779f4f85cb-clmc7"}
{container_name="rds-exporter",namespace="infrastructure",pod_name="sentry-rds-exporter-54bb4dcd8d-h5rh5"}
{container_name="nginx-exporter",namespace="infrastructure",pod_name="sentry-web-75959bc475-4dpg2"}
{container_name="nginx-exporter",namespace="infrastructure",pod_name="sentry-web-65757bf8f6-cgmsw"}
{container_name="nginx",namespace="infrastructure",pod_name="sentry-web-75959bc475-4dpg2"}
avg by (container) (kube_pod_container_resource_requests_cpu_cores{container=~“sentry.*“})
{container="sentry-k8s"}    0.1
{container="sentry-statsds"}    0.1
{container="sentry-cron"}    0.1
{container="sentry-workers"}    0.5
{container="sentry-web"}    1

第二个向量有 uniq 标签,为什么我会收到这个错误?有任何想法吗 ?

最佳答案

RHS 都有相同的 container_name标签,因为他们没有 container_name标签,所以这最终成为多对多匹配。您可能想要在这里做的是使用 label_replace重命名标签,或修复标签的来源以具有一致的命名。

关于普罗米修斯 - 不允许多对多匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52625815/

相关文章:

prometheus - 如何获得警报计数,过去一周在普罗米修斯中触发了多少次警报

jvm - 如何使用 Micrometer 和 Alertmanager 警告 Prometheus 中的 JVM 内存使用情况

prometheus - PromQL 中 histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[10m])) 背后的数学原理是什么

prometheus - 如何从 Prometheus v2 中删除时间序列,特别是一系列警报

python - 在 Kubernetes 集群中使用 Python 设置 Prometheus

kubernetes - 如何查询kubernetes节点可用的总内存

grafana - Prometheus中标 checkout 现次数大于N的系列的显示表

histogram - Grafana 直方图显示错误值(数据源 : Prometheus)

Prometheus:尝试使用 PushGateway 推送指标时,错误:404,响应正文:404 页面未找到

prometheus - 为什么在 Prometheus 中使用 irate 或 rate 计算 CPU 利用率?