diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 990d09ff645f..acaab2ee4c10 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -117,6 +117,7 @@ https://github.com/elastic/beats/compare/v6.4.0...master[Check the HEAD diff] - Add fields for mermory fragmentation, memory allocator stats, copy on write, master-slave status, and active defragmentation to `info` metricset of Redis module. {pull}7695[7695] - Add experimental socket summary metricset to system module {pull}6782[6782] - Increase ignore_above for system.process.cmdline to 2048. {pull}8101[8100] +- Add support to renamed fields planned for redis 5.0. {pull}8167[8167] *Packetbeat* @@ -136,6 +137,7 @@ https://github.com/elastic/beats/compare/v6.4.0...master[Check the HEAD diff] *Metricbeat* - Redis `info` `replication.master_offset` has been deprecated in favor of `replication.master.offset`.{pull}7695[7695] +- Redis `info` clients fields `longest_output_list` and `biggest_input_buf` have been renamed to `max_output_buffer` and `max_input_buffer` based on the names they will have in Redis 5.0, both fields will coexist during a time with the same value {pull}8167[8167]. - Move common kafka fields (broker, topic and partition.id) to the module level {pull}7767[7767]. diff --git a/metricbeat/docker-compose.yml b/metricbeat/docker-compose.yml index c2fc55d19877..e1c8baf52bb6 100644 --- a/metricbeat/docker-compose.yml +++ b/metricbeat/docker-compose.yml @@ -168,6 +168,18 @@ services: redis: build: ./module/redis/_meta + redis_4: + build: + context: ./module/redis/_meta + args: + REDIS_VERSION: 4.0.11 + + redis_5: + build: + context: ./module/redis/_meta + args: + REDIS_VERSION: 5.0-rc4 + traefik: build: ./module/traefik/_meta diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index be2caa64e84d..ec8cb5bc94c3 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -16093,6 +16093,19 @@ Number of client connections (excluding connections from slaves). *`redis.info.clients.longest_output_list`*:: + -- + +deprecated[6.5.0] + +type: long + +Longest output list among current client connections (replaced by max_output_buffer). + + +-- + +*`redis.info.clients.max_output_buffer`*:: ++ +-- type: long Longest output list among current client connections. @@ -16103,9 +16116,22 @@ Longest output list among current client connections. *`redis.info.clients.biggest_input_buf`*:: + -- + +deprecated[6.5.0] + +type: long + +Biggest input buffer among current client connections (replaced by max_input_buffer). + + +-- + +*`redis.info.clients.max_input_buffer`*:: ++ +-- type: long -Biggest input buffer among current client connections. +Biggest input buffer among current client connections (on redis 5.0). -- diff --git a/metricbeat/docs/modules/redis.asciidoc b/metricbeat/docs/modules/redis.asciidoc index 0fe58f3bc035..0aabeb510cd1 100644 --- a/metricbeat/docs/modules/redis.asciidoc +++ b/metricbeat/docs/modules/redis.asciidoc @@ -29,8 +29,8 @@ The Redis module has these additional config options: [float] === Compatibility -The Redis metricsets were tested with Redis 3.2.4 and are expected to work with all version ->= 3.0. +The Redis metricsets were tested with Redis 3.2.12, 4.0.11 and 5.0-rc4, and are expected +to work with all versions >= 3.0. [float] diff --git a/metricbeat/module/redis/_meta/Dockerfile b/metricbeat/module/redis/_meta/Dockerfile index 8f48048cc5fb..ab1068ddcbe5 100644 --- a/metricbeat/module/redis/_meta/Dockerfile +++ b/metricbeat/module/redis/_meta/Dockerfile @@ -1,2 +1,3 @@ -FROM redis:3.2.4-alpine +ARG REDIS_VERSION=3.2.12 +FROM redis:${REDIS_VERSION}-alpine HEALTHCHECK --interval=1s --retries=90 CMD nc -z localhost 6379 diff --git a/metricbeat/module/redis/_meta/docs.asciidoc b/metricbeat/module/redis/_meta/docs.asciidoc index a0989d2f6c78..bff24fd65a0d 100644 --- a/metricbeat/module/redis/_meta/docs.asciidoc +++ b/metricbeat/module/redis/_meta/docs.asciidoc @@ -22,5 +22,5 @@ The Redis module has these additional config options: [float] === Compatibility -The Redis metricsets were tested with Redis 3.2.4 and are expected to work with all version ->= 3.0. +The Redis metricsets were tested with Redis 3.2.12, 4.0.11 and 5.0-rc4, and are expected +to work with all versions >= 3.0. diff --git a/metricbeat/module/redis/fields.go b/metricbeat/module/redis/fields.go index a2cdd21ba076..6f132e793588 100644 --- a/metricbeat/module/redis/fields.go +++ b/metricbeat/module/redis/fields.go @@ -31,5 +31,5 @@ func init() { // Asset returns asset data func Asset() string { - return "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" + return "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" } diff --git a/metricbeat/module/redis/info/_meta/data.json b/metricbeat/module/redis/info/_meta/data.json index 22cdac625aab..753b20566a98 100644 --- a/metricbeat/module/redis/info/_meta/data.json +++ b/metricbeat/module/redis/info/_meta/data.json @@ -16,7 +16,9 @@ "biggest_input_buf": 0, "blocked": 0, "connected": 1, - "longest_output_list": 0 + "longest_output_list": 0, + "max_input_buffer": 0, + "max_output_buffer": 0 }, "cluster": { "enabled": false diff --git a/metricbeat/module/redis/info/_meta/fields.yml b/metricbeat/module/redis/info/_meta/fields.yml index aa31e962447e..558b14aa732c 100644 --- a/metricbeat/module/redis/info/_meta/fields.yml +++ b/metricbeat/module/redis/info/_meta/fields.yml @@ -14,13 +14,23 @@ description: > Number of client connections (excluding connections from slaves). - name: longest_output_list + type: long + deprecated: "6.5.0" + description: > + Longest output list among current client connections (replaced by max_output_buffer). + - name: max_output_buffer type: long description: > Longest output list among current client connections. - name: biggest_input_buf + type: long + deprecated: "6.5.0" + description: > + Biggest input buffer among current client connections (replaced by max_input_buffer). + - name: max_input_buffer type: long description: > - Biggest input buffer among current client connections. + Biggest input buffer among current client connections (on redis 5.0). - name: blocked type: long description: > diff --git a/metricbeat/module/redis/info/data.go b/metricbeat/module/redis/info/data.go index 7e98a40e7b91..6ee9de991e0a 100644 --- a/metricbeat/module/redis/info/data.go +++ b/metricbeat/module/redis/info/data.go @@ -29,6 +29,8 @@ var ( "connected": c.Int("connected_clients"), "longest_output_list": c.Int("client_longest_output_list"), "biggest_input_buf": c.Int("client_biggest_input_buf"), + "max_output_buffer": c.Int("client_recent_max_output_buffer"), + "max_input_buffer": c.Int("client_recent_max_input_buffer"), "blocked": c.Int("blocked_clients"), }, "cluster": s.Object{ diff --git a/metricbeat/module/redis/info/info.go b/metricbeat/module/redis/info/info.go index 1d78baad1d22..a1cec8a655de 100644 --- a/metricbeat/module/redis/info/info.go +++ b/metricbeat/module/redis/info/info.go @@ -80,6 +80,21 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { return nil, err } + // In 5.0 some fields are renamed, maintain both names, old ones will be deprecated + renamings := []struct { + old, new string + }{ + {"client_longest_output_list", "client_recent_max_output_buffer"}, + {"client_biggest_input_buf", "client_recent_max_input_buffer"}, + } + for _, r := range renamings { + if v, ok := info[r.new]; ok { + info[r.old] = v + } else { + info[r.new] = info[r.old] + } + } + slowLogLength, err := redis.FetchSlowLogLength(m.pool.Get()) if err != nil { return nil, err diff --git a/metricbeat/tests/system/test_redis.py b/metricbeat/tests/system/test_redis.py index 0f2219feecb0..e6fa9edd98e8 100644 --- a/metricbeat/tests/system/test_redis.py +++ b/metricbeat/tests/system/test_redis.py @@ -15,7 +15,8 @@ "used.user_children"] CLIENTS_FIELDS = ["blocked", "biggest_input_buf", - "longest_output_list", "connected"] + "longest_output_list", "connected", + "max_input_buffer", "max_output_buffer"] class Test(metricbeat.BaseTest): @@ -58,7 +59,10 @@ def test_keyspace(self): """ # At least one event must be inserted so db stats exist - r = redis.StrictRedis(host=os.getenv('REDIS_HOST', 'localhost'), port=os.getenv('REDIS_PORT', '6379'), db=0) + r = redis.StrictRedis( + host=self.compose_hosts()[0], + port=os.getenv('REDIS_PORT', '6379'), + db=0) r.set('foo', 'bar') self.render_config_template(modules=[{ @@ -116,5 +120,13 @@ def test_module_processors(self): self.assertItemsEqual(self.de_dot(CPU_FIELDS), redis_info["cpu"].keys()) def get_hosts(self): - return [os.getenv('REDIS_HOST', 'localhost') + ':' + + return [self.compose_hosts()[0] + ':' + os.getenv('REDIS_PORT', '6379')] + + +class TestRedis4(Test): + COMPOSE_SERVICES = ['redis_4'] + + +class TestRedis5(Test): + COMPOSE_SERVICES = ['redis_5']