I am scraping the kubernetes metrics from prometheus and would need to extract the number of running pods.
I can see container_last_seen metrics but how should i get no of pods running. Can someone help on this?
Assuming you want to display that in Grafana according to your question tags, from this Kubernetes App Metrics dashboard for example:
count(count(container_memory_usage_bytes{container_name="$container", namespace="$namespace"}) by (pod_name))
You can just import the dashboard and play with the queries.
Depending on your configuration/deployment, you can adjust the variables container_name
and namespace
, grouping by (pod_name)
and count
'ing it does the trick. Some other label than pod_name
can be used as long as it's shared between the pods you want to count.
If you need to get number of running pods, you can use a metric from the list of pods metrics https://github.com/kubernetes/kube-state-metrics/blob/master/Documentation/pod-metrics.md for that (To get the info purely on pods, it'd make sens to use pod-specific metrics). For example if you need to get the number of pods per namespace, it'll be: count(kube_pod_info{namespace="$namespace_name"}) by (namespace)
To get the number of all pods running on the cluster, then just do: count(kube_pod_info)