如何获取在 prometheus 中运行的 pod 数量
Posted
技术标签:
【中文标题】如何获取在 prometheus 中运行的 pod 数量【英文标题】:How to get number of pods running in prometheus 【发布时间】:2019-05-04 20:41:33 【问题描述】:我正在从 prometheus 中抓取 kubernetes 指标,并且需要提取正在运行的 pod 的数量。
我可以看到 container_last_seen 指标,但我应该如何让 Pod 不运行。有人可以帮忙吗?
【问题讨论】:
对不起,我不明白你的意思。 “How to get no of pods running in prometheus”这句话中的“no”是什么意思? 我假设您需要抓取每个命名空间中的 pod 数量,然后将所有这些数字加在一起? 是的,我需要导出正在运行的 pod 数量。 【参考方案1】:如果您需要获取正在运行的 pod 的数量,您可以使用来自 pod 指标列表 https://github.com/kubernetes/kube-state-metrics/blob/master/docs/pod-metrics.md 的指标(要获得纯粹关于 pod 的信息,使用特定于 pod 的指标是有意义的) .
例如,如果您需要获取每个命名空间的 pod 数量,它将是:
count(kube_pod_infonamespace="$namespace_name") by (namespace)
要获取集群上运行的所有 pod 的数量,只需执行以下操作:
count(kube_pod_info)
【讨论】:
【参考方案2】:假设你想根据你的问题标签在 Grafana 中显示它,例如来自这个 Kubernetes App Metrics 仪表板:
count(count(container_memory_usage_bytescontainer_name="$container", namespace="$namespace") by (pod_name))
您可以只导入仪表板并使用查询。
根据您的配置/部署,您可以调整变量container_name
和namespace
,将by (pod_name)
和count
分组就可以了。可以使用除 pod_name
之外的其他标签,只要它在您要计数的 pod 之间共享即可。
【讨论】:
谢谢,我看到了这个,但对 github.com/prometheus/prometheus/blob/master/documentation/… 有点困惑。我的 kubernetes 和 prometheus 在不同的服务器上。以上是关于如何获取在 prometheus 中运行的 pod 数量的主要内容,如果未能解决你的问题,请参考以下文章
Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况
Prometheus 查询 Kubernetes pod 正常运行时间