From 5b4a487062036d82e185f816c0aaed483edb025e Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Tue, 9 Apr 2024 19:49:49 +0200 Subject: [PATCH 01/14] Kubernetes add pvc reference in the kubernetes.volume dataset if present --- metricbeat/module/kubernetes/types.go | 4 ++++ metricbeat/module/kubernetes/volume/data.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/metricbeat/module/kubernetes/types.go b/metricbeat/module/kubernetes/types.go index e1915b9602b..082d6dea80e 100644 --- a/metricbeat/module/kubernetes/types.go +++ b/metricbeat/module/kubernetes/types.go @@ -131,6 +131,10 @@ type Summary struct { InodesUsed uint64 `json:"inodesUsed"` Name string `json:"name"` UsedBytes uint64 `json:"usedBytes"` + PvcRef struct { + Name string `json:"name"` + Namespace string `json:"namespace"` + } `json:"pvcRef"` } `json:"volume"` } `json:"pods"` } diff --git a/metricbeat/module/kubernetes/volume/data.go b/metricbeat/module/kubernetes/volume/data.go index 52d801e105c..4d17a1e985c 100644 --- a/metricbeat/module/kubernetes/volume/data.go +++ b/metricbeat/module/kubernetes/volume/data.go @@ -75,6 +75,10 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { if volume.Inodes > 0 { kubernetes2.ShouldPut(volumeEvent, "fs.inodes.pct", float64(volume.InodesUsed)/float64(volume.Inodes), logger) } + if volume.PvcRef.Name != "" && volume.PvcRef.Namespace != "" { + kubernetes2.ShouldPut(volumeEvent, "pvc.name", volume.PvcRef.Name, logger) + kubernetes2.ShouldPut(volumeEvent, "pvc.namespace", volume.PvcRef.Namespace, logger) + } events = append(events, volumeEvent) } From ede64aec1fdf115d6d3602c22dc73021f3fc36cd Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Wed, 10 Apr 2024 12:25:10 +0200 Subject: [PATCH 02/14] Reuse field kubernetes.persistentvolumeclaim instead of creating a new one --- metricbeat/module/kubernetes/volume/data.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metricbeat/module/kubernetes/volume/data.go b/metricbeat/module/kubernetes/volume/data.go index 4d17a1e985c..7ec159cb7df 100644 --- a/metricbeat/module/kubernetes/volume/data.go +++ b/metricbeat/module/kubernetes/volume/data.go @@ -76,8 +76,8 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { kubernetes2.ShouldPut(volumeEvent, "fs.inodes.pct", float64(volume.InodesUsed)/float64(volume.Inodes), logger) } if volume.PvcRef.Name != "" && volume.PvcRef.Namespace != "" { - kubernetes2.ShouldPut(volumeEvent, "pvc.name", volume.PvcRef.Name, logger) - kubernetes2.ShouldPut(volumeEvent, "pvc.namespace", volume.PvcRef.Namespace, logger) + kubernetes2.ShouldPut(volumeEvent, "persistentvolumeclaim.name", volume.PvcRef.Name, logger) + kubernetes2.ShouldPut(volumeEvent, "persistentvolumeclaim.namespace", volume.PvcRef.Namespace, logger) } events = append(events, volumeEvent) } From 5026f5038ad00ebf807de79504214f3e66ffb276 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Wed, 10 Apr 2024 12:26:09 +0200 Subject: [PATCH 03/14] Add only persistentvolumeclaim name and no namespace (that is redundant with the kubernetes.namespace) --- metricbeat/module/kubernetes/volume/data.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/metricbeat/module/kubernetes/volume/data.go b/metricbeat/module/kubernetes/volume/data.go index 7ec159cb7df..f754766e12d 100644 --- a/metricbeat/module/kubernetes/volume/data.go +++ b/metricbeat/module/kubernetes/volume/data.go @@ -75,9 +75,8 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { if volume.Inodes > 0 { kubernetes2.ShouldPut(volumeEvent, "fs.inodes.pct", float64(volume.InodesUsed)/float64(volume.Inodes), logger) } - if volume.PvcRef.Name != "" && volume.PvcRef.Namespace != "" { + if volume.PvcRef.Name != "" { kubernetes2.ShouldPut(volumeEvent, "persistentvolumeclaim.name", volume.PvcRef.Name, logger) - kubernetes2.ShouldPut(volumeEvent, "persistentvolumeclaim.namespace", volume.PvcRef.Namespace, logger) } events = append(events, volumeEvent) } From b0dd8a42c21467947e30aea975aee18e480c9c36 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Wed, 10 Apr 2024 17:42:24 +0200 Subject: [PATCH 04/14] Add test to see if persistentvolumeclaim name is extracted --- .../kubernetes/_meta/test/stats_summary.json | 6 +++++- .../module/kubernetes/volume/volume_test.go | 17 +++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/metricbeat/module/kubernetes/_meta/test/stats_summary.json b/metricbeat/module/kubernetes/_meta/test/stats_summary.json index 1372d24dcfc..38e19f79815 100644 --- a/metricbeat/module/kubernetes/_meta/test/stats_summary.json +++ b/metricbeat/module/kubernetes/_meta/test/stats_summary.json @@ -121,7 +121,11 @@ "inodesFree": 473551, "inodes": 473560, "inodesUsed": 9, - "name": "default-token-sg8x5" + "name": "default-token-sg8x5", + "pvcRef": { + "name": "pvc-demo", + "namespace": "default" + } } ] } diff --git a/metricbeat/module/kubernetes/volume/volume_test.go b/metricbeat/module/kubernetes/volume/volume_test.go index 719cc48b61d..795ee781455 100644 --- a/metricbeat/module/kubernetes/volume/volume_test.go +++ b/metricbeat/module/kubernetes/volume/volume_test.go @@ -49,14 +49,15 @@ func TestEventMapping(t *testing.T) { testCases := map[string]interface{}{ "name": "default-token-sg8x5", - "fs.available.bytes": 1939689472, - "fs.capacity.bytes": 1939701760, - "fs.used.bytes": 12288, - "fs.used.pct": float64(12288) / float64(1939701760), - "fs.inodes.used": 9, - "fs.inodes.free": 473551, - "fs.inodes.count": 473560, - "fs.inodes.pct": float64(9) / float64(473560), + "fs.available.bytes": 1939689472, + "fs.capacity.bytes": 1939701760, + "fs.used.bytes": 12288, + "fs.used.pct": float64(12288) / float64(1939701760), + "fs.inodes.used": 9, + "fs.inodes.free": 473551, + "fs.inodes.count": 473560, + "fs.inodes.pct": float64(9) / float64(473560), + "persistentvolumeclaim.name": "pvc-demo", } for k, v := range testCases { From d5cfb1f4d012caef31ff5d2ae9fbae69c0b5f320 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Thu, 2 May 2024 17:58:57 +0200 Subject: [PATCH 05/14] Add a separate test for pvc --- .../kubernetes/_meta/test/stats_summary.json | 20 +++++++--- .../module/kubernetes/volume/volume_test.go | 38 +++++++++++-------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/metricbeat/module/kubernetes/_meta/test/stats_summary.json b/metricbeat/module/kubernetes/_meta/test/stats_summary.json index 38e19f79815..244afb29b7e 100644 --- a/metricbeat/module/kubernetes/_meta/test/stats_summary.json +++ b/metricbeat/module/kubernetes/_meta/test/stats_summary.json @@ -121,12 +121,22 @@ "inodesFree": 473551, "inodes": 473560, "inodesUsed": 9, - "name": "default-token-sg8x5", - "pvcRef": { - "name": "pvc-demo", - "namespace": "default" + "name": "default-token-sg8x5" + }, + { + "time": "2024-04-09T17:34:17Z", + "availableBytes": 31509590016, + "capacityBytes": 31526391808, + "usedBytes": 24576, + "inodesFree": 1966069, + "inodes": 1966080, + "inodesUsed": 11, + "name": "pvc-demo-vol", + "pvcRef": { + "name": "pvc-demo", + "namespace": "default" + } } - } ] } ] diff --git a/metricbeat/module/kubernetes/volume/volume_test.go b/metricbeat/module/kubernetes/volume/volume_test.go index 795ee781455..250c1aee695 100644 --- a/metricbeat/module/kubernetes/volume/volume_test.go +++ b/metricbeat/module/kubernetes/volume/volume_test.go @@ -44,24 +44,32 @@ func TestEventMapping(t *testing.T) { events, err := eventMapping(body, logger) assert.NoError(t, err, "error mapping "+testFile) - assert.Len(t, events, 1, "got wrong number of events") + assert.Len(t, events, 2, "got wrong number of events") - testCases := map[string]interface{}{ - "name": "default-token-sg8x5", - - "fs.available.bytes": 1939689472, - "fs.capacity.bytes": 1939701760, - "fs.used.bytes": 12288, - "fs.used.pct": float64(12288) / float64(1939701760), - "fs.inodes.used": 9, - "fs.inodes.free": 473551, - "fs.inodes.count": 473560, - "fs.inodes.pct": float64(9) / float64(473560), - "persistentvolumeclaim.name": "pvc-demo", + testCases := []map[string]interface{}{ + // Test for ephemeral volume + { + "name": "default-token-sg8x5", + "fs.available.bytes": 1939689472, + "fs.capacity.bytes": 1939701760, + "fs.used.bytes": 12288, + "fs.used.pct": float64(12288) / float64(1939701760), + "fs.inodes.used": 9, + "fs.inodes.free": 473551, + "fs.inodes.count": 473560, + "fs.inodes.pct": float64(9) / float64(473560), + }, + // Test for the persistent volume claim + { + "persistentvolumeclaim.name": "pvc-demo", + "name": "pvc-demo-vol", + }, } - for k, v := range testCases { - testValue(t, events[0], k, v) + for i := range testCases { + for k, v := range testCases[i] { + testValue(t, events[i], k, v) + } } } From 0f78c41739065439470603925147f210f8518722 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Thu, 2 May 2024 18:05:13 +0200 Subject: [PATCH 06/14] Add changelog entry for the PR --- CHANGELOG.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 587b95ef5e5..282b841648c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -190,6 +190,7 @@ https://github.com/elastic/beats/compare/v8.8.1\...main[Check the HEAD diff] - Enable early event encoding in the Elasticsearch output, improving cpu and memory use {pull}38572[38572] - The environment variable `BEATS_ADD_CLOUD_METADATA_PROVIDERS` overrides configured/default `add_cloud_metadata` providers {pull}38669[38669] - Introduce log message for not supported annotations for Hints based autodiscover {pull}38213[38213] +- Add persistent volume claim name to volume if available {pull}38839[38839] *Auditbeat* From 9a0cf91506cfbfef214c1a9cbc1b1d1d811b6bfe Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Thu, 2 May 2024 18:10:13 +0200 Subject: [PATCH 07/14] Add the persistentvolume claim field --- metricbeat/module/kubernetes/volume/_meta/fields.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/metricbeat/module/kubernetes/volume/_meta/fields.yml b/metricbeat/module/kubernetes/volume/_meta/fields.yml index ec2ac39d286..e39f852ba8f 100644 --- a/metricbeat/module/kubernetes/volume/_meta/fields.yml +++ b/metricbeat/module/kubernetes/volume/_meta/fields.yml @@ -60,3 +60,12 @@ format: percent description: > Percentage of used inodes +- name: persistentvolumeclaim + type: group + description: > + kubernetes persistent volume claim + release: ga + fields: + - name: name + type: keyword + description: PVC name. From 698eb174188e5e3e814630fb340f53603f2d36e1 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Thu, 2 May 2024 18:16:06 +0200 Subject: [PATCH 08/14] Run mage update to update the fields --- metricbeat/docs/fields.asciidoc | 16 ++++++++++++++++ metricbeat/module/kubernetes/fields.go | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index ca8f1185445..ca309bee9eb 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -47376,6 +47376,22 @@ format: percent -- +[float] +=== persistentvolumeclaim + +kubernetes persistent volume claim + + + +*`kubernetes.persistentvolumeclaim.name`*:: ++ +-- +PVC name. + +type: keyword + +-- + [[exported-fields-kvm]] == KVM fields diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index 1c89d8a6235..78356217082 100644 --- a/metricbeat/module/kubernetes/fields.go +++ b/metricbeat/module/kubernetes/fields.go @@ -32,5 +32,5 @@ func init() { // AssetKubernetes returns asset data. // This is the base64 encoded zlib format compressed contents of module/kubernetes. func AssetKubernetes() string { - return "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" + return "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" } From 39d255eba82de1a524defe90a3fd81e5488a5f14 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Wed, 8 May 2024 15:56:13 +0200 Subject: [PATCH 09/14] Remove the duplicate definition of the field kubernetes.persistentvolumeclaim.name --- metricbeat/docs/fields.asciidoc | 16 ---------------- metricbeat/module/kubernetes/fields.go | 2 +- .../module/kubernetes/volume/_meta/fields.yml | 10 +--------- 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index ca309bee9eb..ca8f1185445 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -47376,22 +47376,6 @@ format: percent -- -[float] -=== persistentvolumeclaim - -kubernetes persistent volume claim - - - -*`kubernetes.persistentvolumeclaim.name`*:: -+ --- -PVC name. - -type: keyword - --- - [[exported-fields-kvm]] == KVM fields diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index 78356217082..e7d6ea31d03 100644 --- a/metricbeat/module/kubernetes/fields.go +++ b/metricbeat/module/kubernetes/fields.go @@ -32,5 +32,5 @@ func init() { // AssetKubernetes returns asset data. // This is the base64 encoded zlib format compressed contents of module/kubernetes. func AssetKubernetes() string { - return "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" + return "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" } diff --git a/metricbeat/module/kubernetes/volume/_meta/fields.yml b/metricbeat/module/kubernetes/volume/_meta/fields.yml index e39f852ba8f..34be8fb3659 100644 --- a/metricbeat/module/kubernetes/volume/_meta/fields.yml +++ b/metricbeat/module/kubernetes/volume/_meta/fields.yml @@ -60,12 +60,4 @@ format: percent description: > Percentage of used inodes -- name: persistentvolumeclaim - type: group - description: > - kubernetes persistent volume claim - release: ga - fields: - - name: name - type: keyword - description: PVC name. + From 8a6eeffceaef0fd51ddc15401cc838ed707408ec Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Wed, 8 May 2024 16:16:36 +0200 Subject: [PATCH 10/14] Remove newline --- metricbeat/module/kubernetes/fields.go | 2 +- metricbeat/module/kubernetes/volume/_meta/fields.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index e7d6ea31d03..1c89d8a6235 100644 --- a/metricbeat/module/kubernetes/fields.go +++ b/metricbeat/module/kubernetes/fields.go @@ -32,5 +32,5 @@ func init() { // AssetKubernetes returns asset data. // This is the base64 encoded zlib format compressed contents of module/kubernetes. func AssetKubernetes() string { - return "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" + return "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" } diff --git a/metricbeat/module/kubernetes/volume/_meta/fields.yml b/metricbeat/module/kubernetes/volume/_meta/fields.yml index 34be8fb3659..ec2ac39d286 100644 --- a/metricbeat/module/kubernetes/volume/_meta/fields.yml +++ b/metricbeat/module/kubernetes/volume/_meta/fields.yml @@ -60,4 +60,3 @@ format: percent description: > Percentage of used inodes - From a8b309210976179bde1c5f79e1cf55e4a98c237f Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Fri, 10 May 2024 20:23:09 +0200 Subject: [PATCH 11/14] Fix key from kubernetes.volume.persistentvolumeclaim.name to kubernetes.persistentvolume --- metricbeat/module/kubernetes/volume/data.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/metricbeat/module/kubernetes/volume/data.go b/metricbeat/module/kubernetes/volume/data.go index f754766e12d..b85377f7db6 100644 --- a/metricbeat/module/kubernetes/volume/data.go +++ b/metricbeat/module/kubernetes/volume/data.go @@ -40,6 +40,7 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { node := summary.Node for _, pod := range summary.Pods { for _, volume := range pod.Volume { + volumeEvent := mapstr.M{ mb.ModuleDataKey: mapstr.M{ "namespace": pod.PodRef.Namespace, @@ -75,8 +76,9 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { if volume.Inodes > 0 { kubernetes2.ShouldPut(volumeEvent, "fs.inodes.pct", float64(volume.InodesUsed)/float64(volume.Inodes), logger) } + if volume.PvcRef.Name != "" { - kubernetes2.ShouldPut(volumeEvent, "persistentvolumeclaim.name", volume.PvcRef.Name, logger) + kubernetes2.ShouldPut(volumeEvent, mb.ModuleDataKey+".persistentvolumeclaim.name", volume.PvcRef.Name, logger) } events = append(events, volumeEvent) } From cec10b2fe14826a785187110f4fa34ceb4948883 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Tue, 14 May 2024 09:14:05 +0200 Subject: [PATCH 12/14] Fix unit test after changing the populated field name --- metricbeat/module/kubernetes/volume/volume_test.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/metricbeat/module/kubernetes/volume/volume_test.go b/metricbeat/module/kubernetes/volume/volume_test.go index 250c1aee695..e5ff665ac40 100644 --- a/metricbeat/module/kubernetes/volume/volume_test.go +++ b/metricbeat/module/kubernetes/volume/volume_test.go @@ -20,12 +20,14 @@ package volume import ( + "fmt" "io/ioutil" "os" "testing" "github.com/stretchr/testify/assert" + "github.com/elastic/beats/v7/metricbeat/mb" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/mapstr" ) @@ -46,6 +48,8 @@ func TestEventMapping(t *testing.T) { assert.Len(t, events, 2, "got wrong number of events") + fmt.Printf("%v", events[1]) + testCases := []map[string]interface{}{ // Test for ephemeral volume { @@ -61,8 +65,8 @@ func TestEventMapping(t *testing.T) { }, // Test for the persistent volume claim { - "persistentvolumeclaim.name": "pvc-demo", - "name": "pvc-demo-vol", + mb.ModuleDataKey + ".persistentvolumeclaim.name": "pvc-demo", + "name": "pvc-demo-vol", }, } From ef19ff09ed332774d84437af0f538e1fa67e1e42 Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Tue, 14 May 2024 09:17:07 +0200 Subject: [PATCH 13/14] Removed printf function --- metricbeat/module/kubernetes/volume/volume_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/metricbeat/module/kubernetes/volume/volume_test.go b/metricbeat/module/kubernetes/volume/volume_test.go index e5ff665ac40..2df7ab8eed0 100644 --- a/metricbeat/module/kubernetes/volume/volume_test.go +++ b/metricbeat/module/kubernetes/volume/volume_test.go @@ -20,7 +20,6 @@ package volume import ( - "fmt" "io/ioutil" "os" "testing" @@ -48,8 +47,6 @@ func TestEventMapping(t *testing.T) { assert.Len(t, events, 2, "got wrong number of events") - fmt.Printf("%v", events[1]) - testCases := []map[string]interface{}{ // Test for ephemeral volume { From 835d9911e379f1bdeb5b168abb9b8037a1c03eff Mon Sep 17 00:00:00 2001 From: Mirko Bez Date: Tue, 14 May 2024 17:32:09 +0200 Subject: [PATCH 14/14] Remove empty lines added by mistake --- metricbeat/module/kubernetes/volume/data.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/metricbeat/module/kubernetes/volume/data.go b/metricbeat/module/kubernetes/volume/data.go index b85377f7db6..c6b9983f777 100644 --- a/metricbeat/module/kubernetes/volume/data.go +++ b/metricbeat/module/kubernetes/volume/data.go @@ -40,7 +40,6 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { node := summary.Node for _, pod := range summary.Pods { for _, volume := range pod.Volume { - volumeEvent := mapstr.M{ mb.ModuleDataKey: mapstr.M{ "namespace": pod.PodRef.Namespace, @@ -76,7 +75,6 @@ func eventMapping(content []byte, logger *logp.Logger) ([]mapstr.M, error) { if volume.Inodes > 0 { kubernetes2.ShouldPut(volumeEvent, "fs.inodes.pct", float64(volume.InodesUsed)/float64(volume.Inodes), logger) } - if volume.PvcRef.Name != "" { kubernetes2.ShouldPut(volumeEvent, mb.ModuleDataKey+".persistentvolumeclaim.name", volume.PvcRef.Name, logger) }