首页 > 解决方案 > kube cronjobs 的 Prometheus 多对多问题

问题描述

嘿那里,

我正在尝试使用 Prometheus 配置 Kubernetes Cronjobs 监控和警报。我发现这个有用的指南

但是我总是得到一个不允许的多对多匹配:匹配标签必须在一侧是唯一的错误。

例如,这是触发此错误的 PromQL 查询:

max( kube_job_status_start_time * ON(job_name) GROUP_RIGHT() kube_job_labels{label_cronjob!=""} ) BY (job_name, label_cronjob)

查询本身会导致例如这些指标

kube_job_status_start_time kube_job_status_start_time{app="kube-state-metrics",chart="kube-state-metrics-0.12.1",heritage="Tiller",instance="REDACTED",job="kubernetes-service-endpoints",job_name="test-1546295400",kubernetes_name="kube-state-metrics",kubernetes_namespace="monitoring",kubernetes_node="REDACTED",namespace="test-develop",release="kube-state-metrics"}

kube_job_labels{label_cronjob!=""} kube_job_labels{app="kube-state-metrics",chart="kube-state-metrics-0.12.1",heritage="Tiller",instance="REDACTED",job="kubernetes-service-endpoints",job_name="test-1546295400",kubernetes_name="kube-state-metrics",kubernetes_namespace="monitoring",kubernetes_node="REDACTED",label_cronjob="test",label_environment="test-develop",namespace="test-develop",release="kube-state-metrics"}

我在这里缺少什么吗?我从指南中尝试的每个查询都会发生相同的多对多错误。即使我自己从头开始构建它也会导致同样的错误。希望你能在这里帮助我:)

标签: kubernetesprometheuspromqlkube-state-metrics

解决方案


在我的情况下,当通过 helm(stable/prometheus-operator)安装时,我没有从 Prometheus 获得这个额外的标签。

您需要在 Prometheus 中进行配置。它调用:honor_labels: false

# If honor_labels is set to "false", label conflicts are resolved by renaming
# conflicting labels in the scraped data to "exported_<original-label>" (for
# example "exported_instance", "exported_job") and then attaching server-side
# labels.

所以你必须配置你的 prometheus.yaml 文件 - 配置选项 Honor_labels: false

# Setting honor_labels to "true" is useful for use cases such as federation and
# scraping the Pushgateway, where all labels specified in the target should be
# preserved

无论如何,如果我有这样的(我现在有exported_jobs),仍然无法进行正确的查询,但我想仍然是因为我的LHS。

Error executing query: found duplicate series for the match group 
{exported_job="kube-state-metrics"} on the left hand-side of the operation: 
[{__name__=

推荐阅读