Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况
Posted
技术标签:
【中文标题】Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况【英文标题】:Prometheus queries to get CPU and Memory usage in kubernetes pods 【发布时间】:2019-08-04 05:37:33 【问题描述】:我需要使用 prometheus 查询来获取 kubernetes pod 中的 CPU 和内存使用情况。有人可以帮忙吗?
【问题讨论】:
请提供更多关于您当前情况的信息。 Prometheus 是否已启动并正在运行,但您不知道如何查询指标?您是否无法让 Prometheus 在您的集群中运行? count k8s cluster cpu/memory usage with prometheus的可能重复 是的。它已启动并正在运行我希望收到有关 pod 的 CPU 和内存使用情况的警报。为此,我需要进行普罗米修斯查询。请问你用的是什么? 我想要这样的东西 "sum(container_memory_usage_bytesnamespace="$namespace", pod_name="$pod", container_name!="POD") by (container_name)" 因为有此查询中的变量我无法发送警报。 请使用您尝试过的任何查询来编辑您的问题。 【参考方案1】:您是否使用 prometheus-operator 从 kubernetes 收集数据? 如果是,你可以使用这样的东西: 总和(container_memory_usage_bytes) 总和(container_cpu_usage_seconds_total) 举个例子。
【讨论】:
我想要这样的东西 "sum(container_memory_usage_bytesnamespace="$namespace", pod_name="$pod", container_name!="POD") by (container_name)" 因为有此查询中的变量我无法发送警报。【参考方案2】:CPU 百分比
avg((sum (rate (container_cpu_usage_seconds_total container_name!="" ,pod="<Pod name>" [5m])) by (namespace , pod, container ) / on (container , pod , namespace) ((kube_pod_container_resource_limits_cpu_cores >0)*300))*100)
内存百分比
avg((avg (container_memory_working_set_bytespod="<pod name>") by (container_name , pod ))/ on (container_name , pod)(avg (container_spec_memory_limit_bytes>0 ) by (container_name, pod))*100)
您可以在查询中使用上面带有 pod 名称的 promql。
【讨论】:
你为什么要乘以 300以上是关于Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章
Prometheus 查询 Kubernetes pod 正常运行时间
如何在 Kubernetes Dashboard 中获取 Prometheus 数据