From fa6fa5646d36d2961fad1d965f7bae039d8d999d Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Tue, 19 Mar 2024 14:26:07 -0400 Subject: [PATCH] metricbeat/module/rabbitmq/queue - Fix data type for consumers.utilisation.pct Fix mapping type for `rabbitmq.queue.consumers.utilisation.pct` to be `scaled_float` instead of `long` because the values range on `[0, 1.0]`. Previously, truncation converted the value to an integer so it either reported zero or one. There was a bug in the unit tests that did not catch this until we updated to testify 1.9.0 (https://github.com/stretchr/testify/pull/1531). --- CHANGELOG.next.asciidoc | 3 ++- metricbeat/docs/fields.asciidoc | 2 +- metricbeat/module/rabbitmq/fields.go | 2 +- metricbeat/module/rabbitmq/queue/_meta/data.json | 4 ++-- metricbeat/module/rabbitmq/queue/_meta/fields.yml | 3 ++- metricbeat/module/rabbitmq/queue/data.go | 2 +- metricbeat/module/rabbitmq/queue/queue_test.go | 2 +- 7 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index be217566c4c5..1c3f6ff2a87e 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -107,11 +107,12 @@ fields added to events containing the Beats version. {pull}37553[37553] - Fix panics when parsing dereferencing invalid parsed url. {pull}34702[34702] - Fix setuid root when running under cgroups v2. {pull}37794[37794] - Adjust State loader to only retry when response code status is 5xx {pull}37981[37981] -- Reset prctl dumpable flag after cap drop. {pull}38269[38269] +- Reset prctl dumpable flag after cap drop. {pull}38269[38269] *Metricbeat* - Fix fields not being parsed correctly in postgresql/database {issue}25301[25301] {pull}37720[37720] +- rabbitmq/queue - Fix mapping type for `rabbitmq.queue.consumers.utilisation.pct` to be `scaled_float` instead of `long` because the values range on `[0, 1.0]`. Previously, truncation converted the value to an integer so it either reported zero or one. *Osquerybeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 435760b7406e..6694528df13a 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -57758,7 +57758,7 @@ type: long Fraction of the time (between 0.0 and 1.0) that the queue is able to immediately deliver messages to consumers. This can be less than 1.0 if consumers are limited by network congestion or prefetch count. -type: long +type: scaled_float format: percent diff --git a/metricbeat/module/rabbitmq/fields.go b/metricbeat/module/rabbitmq/fields.go index 95345f6b3358..a2d590d8109c 100644 --- a/metricbeat/module/rabbitmq/fields.go +++ b/metricbeat/module/rabbitmq/fields.go @@ -32,5 +32,5 @@ func init() { // AssetRabbitmq returns asset data. // This is the base64 encoded zlib format compressed contents of module/rabbitmq. func AssetRabbitmq() string { - return "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" + return "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" } diff --git a/metricbeat/module/rabbitmq/queue/_meta/data.json b/metricbeat/module/rabbitmq/queue/_meta/data.json index 51f8696f24be..42992de9967d 100644 --- a/metricbeat/module/rabbitmq/queue/_meta/data.json +++ b/metricbeat/module/rabbitmq/queue/_meta/data.json @@ -20,7 +20,7 @@ "consumers": { "count": 3, "utilisation": { - "pct": 0 + "pct": 0.7 } }, "disk": { @@ -68,4 +68,4 @@ "address": "127.0.0.1:55555", "type": "rabbitmq" } -} \ No newline at end of file +} diff --git a/metricbeat/module/rabbitmq/queue/_meta/fields.yml b/metricbeat/module/rabbitmq/queue/_meta/fields.yml index 93a496d5926b..0376de9d367c 100644 --- a/metricbeat/module/rabbitmq/queue/_meta/fields.yml +++ b/metricbeat/module/rabbitmq/queue/_meta/fields.yml @@ -45,7 +45,8 @@ description: > Number of consumers. - name: consumers.utilisation.pct - type: long + type: scaled_float + scaling_factor: 100 format: percent description: > Fraction of the time (between 0.0 and 1.0) that the queue is able to immediately deliver messages to consumers. This can be less than 1.0 if consumers are limited by network congestion or prefetch count. diff --git a/metricbeat/module/rabbitmq/queue/data.go b/metricbeat/module/rabbitmq/queue/data.go index 682abcbc194e..35a4a772c0e6 100644 --- a/metricbeat/module/rabbitmq/queue/data.go +++ b/metricbeat/module/rabbitmq/queue/data.go @@ -43,7 +43,7 @@ var ( "consumers": s.Object{ "count": c.Int("consumers"), "utilisation": s.Object{ - "pct": c.Int("consumer_utilisation", s.IgnoreAllErrors), + "pct": c.Float("consumer_utilisation", s.IgnoreAllErrors), }, }, "messages": s.Object{ diff --git a/metricbeat/module/rabbitmq/queue/queue_test.go b/metricbeat/module/rabbitmq/queue/queue_test.go index 4e0d08aba6f8..41f0fd61b209 100644 --- a/metricbeat/module/rabbitmq/queue/queue_test.go +++ b/metricbeat/module/rabbitmq/queue/queue_test.go @@ -55,7 +55,7 @@ func TestFetchEventContents(t *testing.T) { consumers := event["consumers"].(mapstr.M) utilisation := consumers["utilisation"].(mapstr.M) assert.EqualValues(t, 3, consumers["count"]) - assert.EqualValues(t, 0.7, utilisation["pct"]) + assert.Equal(t, 0.7, utilisation["pct"]) memory := event["memory"].(mapstr.M) assert.EqualValues(t, 232720, memory["bytes"])