Prometheus 基于标签过滤 - 错误
Posted
技术标签:
【中文标题】Prometheus 基于标签过滤 - 错误【英文标题】:Prometheus filtering based on Labels - error 【发布时间】:2022-01-12 10:51:31 【问题描述】:我们使用此查询来获取 cpu 指标的 pod/namespace,并使用 kube_pod_labels 根据标签获取 pod 名称。
max(kube_pod_labelslabel_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_iratenamespace="pipeline-worker", container_name!="POD","pod", "$1", "pod_name", "(.+)")) * on(pod) group_left kube_pod_status_phasephase="Running") by(label_workflow_vertex_id)
能够看到空的查询结果。我们正在 EKS 上建立集群(附上 grafana UI 截图)enter image description here
这里的任何帮助都会高度相关(比如我在这里做错了什么)
【问题讨论】:
【参考方案1】:在www.asserts.ai,我们使用以下记录规则记录容器CPU Metric
看起来您正在使用 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)
)
【讨论】:
我做错了吗?顺便说一句,我们在 kSM 版本 2.2.0 上,我觉得 kube_pod_labels 舞会指标没有 pod 标签。我正在经历这个并试图添加属性 - --metric-labels-allowlist=pods=[*] 但这似乎对我来说也不起作用。这里有什么建议吗?以上是关于Prometheus 基于标签过滤 - 错误的主要内容,如果未能解决你的问题,请参考以下文章
“模板语法错误:过滤器无效:”;基于 django 文档的自定义 django 模板过滤器损坏,但模板标签有效