From 240062bb6a52efea5ddad57e105e55eba429166a Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Thu, 10 Jun 2021 10:18:52 +0300 Subject: [PATCH] [Metricbeat] Add state_statefulset replicas.ready (#26088) (#26219) Add a "replicas.ready" field to the state_statefulset metricset of the Kubernetes module. This is drawn from the "readyReplicas" value in the Kubernetes StatefulSetStatus API response. (cherry picked from commit dbde7dbf7508f0467463fad2905ed333ced912d3) Co-authored-by: Toby McLaughlin --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 10 ++++++++++ metricbeat/module/kubernetes/fields.go | 2 +- .../kubernetes/state_statefulset/_meta/data.json | 3 ++- .../kubernetes/state_statefulset/_meta/fields.yml | 4 ++++ .../state_statefulset/_meta/test/ksm.v1.8.0.expected | 3 ++- .../state_statefulset/_meta/testdata/docs.plain | 5 +++++ .../_meta/testdata/docs.plain-expected.json | 9 ++++++--- .../kubernetes/state_statefulset/state_statefulset.go | 1 + 9 files changed, 32 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index bcafa7e9fc83..1ceb49ea5d8d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -102,6 +102,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Store `cloudfoundry.container.cpu.pct` in decimal form and as `scaled_float`. {pull}24219[24219] - Remove `index_stats.created` field from Elasticsearch/index Metricset {pull}25113[25113] - Adjust host fields to adopt new names from 1.9.0 ECS. {pull}24312[24312] +- Add replicas.ready field to state_statefulset in Kubernetes module{pull}26088[26088] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index bc39745fa3fd..29ac68a0a083 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -31445,6 +31445,16 @@ type: long The number of desired replicas per StatefulSet +type: long + +-- + +*`kubernetes.statefulset.replicas.ready`*:: ++ +-- +The number of ready replicas per StatefulSet + + type: long -- diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index 44a13b46e69f..f3bd6e475b57 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 gzipped contents of module/kubernetes. func AssetKubernetes() string { - return "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" + return "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" } diff --git a/metricbeat/module/kubernetes/state_statefulset/_meta/data.json b/metricbeat/module/kubernetes/state_statefulset/_meta/data.json index 27291f2f43ec..776b4a48d937 100644 --- a/metricbeat/module/kubernetes/state_statefulset/_meta/data.json +++ b/metricbeat/module/kubernetes/state_statefulset/_meta/data.json @@ -16,7 +16,8 @@ "name": "mysql", "replicas": { "desired": 5, - "observed": 2 + "observed": 2, + "ready": 2 } } }, diff --git a/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml b/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml index 9c4997997302..20cd01d8d15c 100644 --- a/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml +++ b/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml @@ -21,6 +21,10 @@ type: long description: > The number of desired replicas per StatefulSet + - name: ready + type: long + description: > + The number of ready replicas per StatefulSet - name: generation type: group description: > diff --git a/metricbeat/module/kubernetes/state_statefulset/_meta/test/ksm.v1.8.0.expected b/metricbeat/module/kubernetes/state_statefulset/_meta/test/ksm.v1.8.0.expected index 1c3e98de2f15..a5c1c584229d 100644 --- a/metricbeat/module/kubernetes/state_statefulset/_meta/test/ksm.v1.8.0.expected +++ b/metricbeat/module/kubernetes/state_statefulset/_meta/test/ksm.v1.8.0.expected @@ -13,7 +13,8 @@ "name": "web", "replicas": { "desired": 2, - "observed": 2 + "observed": 2, + "ready": 2 } }, "Index": "", diff --git a/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain b/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain index 32b7edd31e05..ee71c2d18576 100644 --- a/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain +++ b/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain @@ -462,3 +462,8 @@ kube_statefulset_status_observed_generation{namespace="custom",statefulset="mysq kube_statefulset_status_replicas{namespace="default",statefulset="elasticsearch"} 1 kube_statefulset_status_replicas{namespace="default",statefulset="mysql"} 2 kube_statefulset_status_replicas{namespace="custom",statefulset="mysql"} 3 +# HELP kube_statefulset_status_replicas_ready The number of ready replicas per StatefulSet. +# TYPE kube_statefulset_status_replicas_ready gauge +kube_statefulset_status_replicas_ready{namespace="default",statefulset="elasticsearch"} 1 +kube_statefulset_status_replicas_ready{namespace="default",statefulset="mysql"} 2 +kube_statefulset_status_replicas_ready{namespace="custom",statefulset="mysql"} 1 diff --git a/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain-expected.json b/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain-expected.json index a2d37b446ed7..ae850efe365f 100644 --- a/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain-expected.json +++ b/metricbeat/module/kubernetes/state_statefulset/_meta/testdata/docs.plain-expected.json @@ -16,7 +16,8 @@ "name": "mysql", "replicas": { "desired": 5, - "observed": 2 + "observed": 2, + "ready": 2 } } }, @@ -46,7 +47,8 @@ "name": "elasticsearch", "replicas": { "desired": 4, - "observed": 1 + "observed": 1, + "ready": 1 } } }, @@ -76,7 +78,8 @@ "name": "mysql", "replicas": { "desired": 6, - "observed": 3 + "observed": 3, + "ready": 1 } } }, diff --git a/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go b/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go index eb59e4127f47..2bf221945380 100644 --- a/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go +++ b/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go @@ -47,6 +47,7 @@ var ( "kube_statefulset_status_observed_generation": p.Metric("generation.observed"), "kube_statefulset_replicas": p.Metric("replicas.desired"), "kube_statefulset_status_replicas": p.Metric("replicas.observed"), + "kube_statefulset_status_replicas_ready": p.Metric("replicas.ready"), }, Labels: map[string]p.LabelMap{