Prometheus 基于标签的过滤 - 错误

问题描述 投票:0回答:2

我们使用此查询来期望 pod/namespace 作为 cpu 指标,并使用 kube_pod_labels 来根据标签获取 pod 名称。

max(kube_pod_labels{label_workflow_instance_id="$workflow_instance_id", label_workflow_vertex_id=~"$workflow_vertex_id", pod=~".+"}  * on(pod) group_left sum by(pod) (label_replace(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace="pipeline-worker", container_name!="POD"},"pod", "$1", "pod_name", "(.+)")) * on(pod) group_left kube_pod_status_phase{phase="Running"}) by(label_workflow_vertex_id)

能够看到空的查询结果。我们正在通过 EKS 建立集群(附上 grafana UI 屏幕截图)enter image description here

这里的任何帮助都将是高度相关的(就像我在这里做错的事情一样)

kubernetes prometheus grafana promql
2个回答
0
投票

www.asserts.ai 我们使用以下记录规则记录容器 CPU 指标

看起来您正在使用 kube_mixin,因此

mixin_pod_workload
的记录规则可能已经存在于您的环境中

sum by (pod, container, namespace, node, job, workload, asserts_env, asserts_site) (
            rate(container_cpu_usage_seconds_total {container != "POD", image != "", container != ""}[5m])
            * on (pod, namespace, asserts_env, asserts_site) group_left(workload)
            mixin_pod_workload
            * on (pod, namespace, asserts_env, asserts_site) group_left()
            group by (pod, namespace, asserts_env, asserts_site) (kube_pod_labels)
          )

0
投票

将这些添加到 k8s 中 kube-state-metric 部署的 args 中 - --遥测端口=8081 - --metric-labels-allowlist=pods=[*] 会帮助你的。

#-------------------------------------

spec:
  containers:
  - args:
    - --port=8080
    - --telemetry-port=8081
    - --metric-labels-allowlist=pods=[*]
    - --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments
    image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.9.2
© www.soinside.com 2019 - 2024. All rights reserved.