Skip to content

Commit d272937

Browse files
authored
Merge pull request open-telemetry#61 from chadpatel/cluster_number_of_running_pods
Cluster number of running pods
2 parents f675755 + 1c3dc4a commit d272937

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

receiver/awscontainerinsightreceiver/README.md

+12-11
Original file line numberDiff line numberDiff line change
@@ -340,17 +340,18 @@ kubectl apply -f config.yaml
340340

341341
## Available Metrics and Resource Attributes
342342
### Cluster
343-
| Metric | Unit |
344-
|------------------------------------------------------------|---------|
345-
| cluster_failed_node_count | Count |
346-
| cluster_node_count | Count |
347-
| apiserver_storage_objects | Count |
348-
| apiserver_request_total | Count |
349-
| apiserver_request_duration_seconds | Seconds |
350-
| apiserver_admission_controller_admission_duration_seconds | Seconds |
351-
| rest_client_request_duration_seconds | Seconds |
352-
| rest_client_requests_total | Count |
353-
| etcd_request_duration_seconds | Seconds |
343+
| Metric | Unit |
344+
|-----------------------------------------------------------|---------|
345+
| cluster_failed_node_count | Count |
346+
| cluster_node_count | Count |
347+
| cluster_number_of_running_pods | Count |
348+
| apiserver_storage_objects | Count |
349+
| apiserver_request_total | Count |
350+
| apiserver_request_duration_seconds | Seconds |
351+
| apiserver_admission_controller_admission_duration_seconds | Seconds |
352+
| rest_client_request_duration_seconds | Seconds |
353+
| rest_client_requests_total | Count |
354+
| etcd_request_duration_seconds | Seconds |
354355

355356

356357

receiver/awscontainerinsightreceiver/internal/k8sapiserver/k8sapiserver.go

+8
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,14 @@ func (k *K8sAPIServer) getClusterMetrics(clusterName, timestampNs string) pmetri
103103
"cluster_failed_node_count": k.leaderElection.nodeClient.ClusterFailedNodeCount(),
104104
"cluster_node_count": k.leaderElection.nodeClient.ClusterNodeCount(),
105105
}
106+
107+
namespaceMap := k.leaderElection.podClient.NamespaceToRunningPodNum()
108+
clusterPodCount := 0
109+
for _, value := range namespaceMap {
110+
clusterPodCount += value
111+
}
112+
fields["cluster_number_of_running_pods"] = clusterPodCount
113+
106114
attributes := map[string]string{
107115
ci.ClusterNameKey: clusterName,
108116
ci.MetricType: ci.TypeCluster,

receiver/awscontainerinsightreceiver/internal/k8sapiserver/k8sapiserver_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,8 @@ func TestK8sAPIServer_GetMetrics(t *testing.T) {
270270
case ci.TypeCluster:
271271
assertMetricValueEqual(t, metric, "cluster_failed_node_count", int64(1))
272272
assertMetricValueEqual(t, metric, "cluster_node_count", int64(1))
273+
assertMetricValueEqual(t, metric, "cluster_number_of_running_pods", int64(2))
274+
273275
case ci.TypeClusterService:
274276
assertMetricValueEqual(t, metric, "service_number_of_running_pods", int64(1))
275277
assert.Contains(t, []string{"service1", "service2"}, getStringAttrVal(metric, ci.TypeService))

receiver/awscontainerinsightreceiver/internal/stores/podstore.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ type podClient interface {
117117

118118
type PodStore struct {
119119
cache *mapWithExpiry
120-
// preMeasurements per each Type (Pod, Container, etc)
120+
// prevMeasurements per each Type (Pod, Container, etc)
121121
prevMeasurements sync.Map // map[string]*mapWithExpiry
122122
podClient podClient
123123
k8sClient replicaSetInfoProvider

0 commit comments

Comments
 (0)