From 556acc792b9a496827014b8ed6d1c82612dc3355 Mon Sep 17 00:00:00 2001 From: Victor Marmol Date: Thu, 26 Feb 2015 09:25:01 -0800 Subject: [PATCH] Adding ContainersPerPodCount metric. This will let us know the composition of pods in clusters. --- pkg/kubelet/kubelet.go | 5 +++++ pkg/kubelet/metrics/metrics.go | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 5ca5b805b56..d918c6003c3 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1306,6 +1306,11 @@ func (kl *Kubelet) SyncPods(pods []api.BoundPod, podSyncTypes map[types.UID]metr kl.podWorkers.UpdatePod(pod, func() { metrics.SyncPodLatency.WithLabelValues(podSyncTypes[pod.UID].String()).Observe(metrics.SinceInMicroseconds(start)) }) + + // Note the number of containers for new pods. + if val, ok := podSyncTypes[pod.UID]; ok && (val == metrics.SyncPodCreate) { + metrics.ContainersPerPodCount.Observe(float64(len(pod.Spec.Containers))) + } } // Stop the workers for no-longer existing pods. diff --git a/pkg/kubelet/metrics/metrics.go b/pkg/kubelet/metrics/metrics.go index 629bcd0086e..ee8e5bffd84 100644 --- a/pkg/kubelet/metrics/metrics.go +++ b/pkg/kubelet/metrics/metrics.go @@ -36,7 +36,13 @@ var ( Help: "Image pull latency in microseconds.", }, ) - // TODO(vmarmol): Break down by number of containers in pod? + ContainersPerPodCount = prometheus.NewSummary( + prometheus.SummaryOpts{ + Subsystem: kubeletSubsystem, + Name: "containers_per_pod_count", + Help: "The number of containers per pod.", + }, + ) SyncPodLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Subsystem: kubeletSubsystem, @@ -52,7 +58,6 @@ var ( Help: "Latency in microseconds to sync all pods.", }, ) - // TODO(vmarmol): Containers per pod DockerOperationsLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Subsystem: kubeletSubsystem, @@ -73,6 +78,7 @@ func Register(containerCache dockertools.DockerCache) { prometheus.MustRegister(SyncPodLatency) prometheus.MustRegister(DockerOperationsLatency) prometheus.MustRegister(SyncPodsLatency) + prometheus.MustRegister(ContainersPerPodCount) prometheus.MustRegister(newPodAndContainerCollector(containerCache)) }) }