From 99287d89e07816bd4f0b60d83edeca4d034961b9 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Thu, 10 Dec 2020 11:38:01 -0800 Subject: [PATCH] Update string parsing of allocatable cpu cores in kube_inventory (#8512) --- plugins/inputs/kube_inventory/README.md | 2 ++ plugins/inputs/kube_inventory/node.go | 6 ++++-- plugins/inputs/kube_inventory/node_test.go | 16 +++++++++------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/plugins/inputs/kube_inventory/README.md b/plugins/inputs/kube_inventory/README.md index d65bfcc38..276a90110 100644 --- a/plugins/inputs/kube_inventory/README.md +++ b/plugins/inputs/kube_inventory/README.md @@ -191,9 +191,11 @@ subjects: - node_name - fields: - capacity_cpu_cores + - capacity_millicpu_cores - capacity_memory_bytes - capacity_pods - allocatable_cpu_cores + - allocatable_millicpu_cores - allocatable_memory_bytes - allocatable_pods diff --git a/plugins/inputs/kube_inventory/node.go b/plugins/inputs/kube_inventory/node.go index cccf6897f..cb123c458 100644 --- a/plugins/inputs/kube_inventory/node.go +++ b/plugins/inputs/kube_inventory/node.go @@ -31,7 +31,8 @@ func (ki *KubernetesInventory) gatherNode(n v1.Node, acc telegraf.Accumulator) e for resourceName, val := range n.Status.Capacity { switch resourceName { case "cpu": - fields["capacity_cpu_cores"] = atoi(val.GetString_()) + fields["capacity_cpu_cores"] = convertQuantity(val.GetString_(), 1) + fields["capacity_millicpu_cores"] = convertQuantity(val.GetString_(), 1000) case "memory": fields["capacity_memory_bytes"] = convertQuantity(val.GetString_(), 1) case "pods": @@ -42,7 +43,8 @@ func (ki *KubernetesInventory) gatherNode(n v1.Node, acc telegraf.Accumulator) e for resourceName, val := range n.Status.Allocatable { switch resourceName { case "cpu": - fields["allocatable_cpu_cores"] = atoi(val.GetString_()) + fields["allocatable_cpu_cores"] = convertQuantity(val.GetString_(), 1) + fields["allocatable_millicpu_cores"] = convertQuantity(val.GetString_(), 1000) case "memory": fields["allocatable_memory_bytes"] = convertQuantity(val.GetString_(), 1) case "pods": diff --git a/plugins/inputs/kube_inventory/node_test.go b/plugins/inputs/kube_inventory/node_test.go index 7573dd2c0..68cf463b0 100644 --- a/plugins/inputs/kube_inventory/node_test.go +++ b/plugins/inputs/kube_inventory/node_test.go @@ -56,7 +56,7 @@ func TestNode(t *testing.T) { "pods": {String_: toStrPtr("110")}, }, Allocatable: map[string]*resource.Quantity{ - "cpu": {String_: toStrPtr("16")}, + "cpu": {String_: toStrPtr("1000m")}, "ephemeral_storage_bytes": {String_: toStrPtr("44582761194")}, "hugepages_1Gi_bytes": {String_: toStrPtr("0")}, "hugepages_2Mi_bytes": {String_: toStrPtr("0")}, @@ -103,12 +103,14 @@ func TestNode(t *testing.T) { { Measurement: nodeMeasurement, Fields: map[string]interface{}{ - "capacity_cpu_cores": int64(16), - "capacity_memory_bytes": int64(1.28837533696e+11), - "capacity_pods": int64(110), - "allocatable_cpu_cores": int64(16), - "allocatable_memory_bytes": int64(1.28732676096e+11), - "allocatable_pods": int64(110), + "capacity_cpu_cores": int64(16), + "capacity_millicpu_cores": int64(16000), + "capacity_memory_bytes": int64(1.28837533696e+11), + "capacity_pods": int64(110), + "allocatable_cpu_cores": int64(1), + "allocatable_millicpu_cores": int64(1000), + "allocatable_memory_bytes": int64(1.28732676096e+11), + "allocatable_pods": int64(110), }, Tags: map[string]string{ "node_name": "node1",