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

时间:2018-10-03 11:13:14

标签: 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标签,为什么我会收到此错误?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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