diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 81e86301cc8f..b4d31e7e1eaf 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -80,6 +80,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Metricbeat* +- Add `key` metricset to the Redis module. {issue}9582[9582] {pull}9657[9657] {pull}9746[9746] + *Packetbeat* *Functionbeat* @@ -231,7 +233,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha1...v7.0.0-alpha2[Check the - Support GET requests in Jolokia module. {issue}8566[8566] {pull}9226[9226] - Add freebsd support for the uptime metricset. {pull}9413[9413] - Add `host.os.name` field to add_host_metadata processor. {issue}8948[8948] {pull}9405[9405] -- Add `key` metricset to the Redis module. {issue}9582[9582] {pull}9657[9657] - Add more TCP statuses to `socket_summary` metricset. {pull}9430[9430] - Remove experimental tag from ceph metricsets. {pull}9708[9708] diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index cb464979c904..9e2fdb5cd4d1 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -20326,6 +20326,16 @@ type: keyword Key name. +-- + +*`redis.key.id`*:: ++ +-- +type: keyword + +Unique id for this key (With the form :). + + -- *`redis.key.type`*:: diff --git a/metricbeat/docs/images/metricbeat_redis_key_dashboard.png b/metricbeat/docs/images/metricbeat_redis_key_dashboard.png new file mode 100644 index 000000000000..76d414b86c4a Binary files /dev/null and b/metricbeat/docs/images/metricbeat_redis_key_dashboard.png differ diff --git a/metricbeat/module/redis/_meta/kibana/6/dashboard/Metricbeat-redis-keys.json b/metricbeat/module/redis/_meta/kibana/6/dashboard/Metricbeat-redis-keys.json new file mode 100644 index 000000000000..ccf3508789cc --- /dev/null +++ b/metricbeat/module/redis/_meta/kibana/6/dashboard/Metricbeat-redis-keys.json @@ -0,0 +1,893 @@ +{ + "objects": [ + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Keyspace selector [Redis]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "controls": [ + { + "fieldName": "redis.keyspace.id", + "id": "1545388837304", + "indexPattern": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "label": "Keyspace", + "options": { + "dynamicOptions": true, + "multiselect": true, + "order": "desc", + "size": 5, + "type": "terms" + }, + "parent": "", + "type": "list" + } + ], + "pinFilters": false, + "updateFiltersOnChange": true, + "useTimeFilter": false + }, + "title": "Keyspace selector [Redis]", + "type": "input_control_vis" + } + }, + "id": "00d39210-050d-11e9-9c60-d582a238e2c5", + "type": "visualization", + "updated_at": "2018-12-21T11:19:04.179Z", + "version": 5 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "key": "redis.key.type", + "negate": false, + "params": { + "query": "list", + "type": "phrase" + }, + "type": "phrase", + "value": "list" + }, + "query": { + "match": { + "redis.key.type": { + "query": "list", + "type": "phrase" + } + } + } + } + ], + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Lists length [Redis]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": { + "customLabel": "Number of elements", + "field": "redis.key.length" + }, + "schema": "metric", + "type": "max" + }, + { + "enabled": true, + "id": "3", + "params": { + "customLabel": "Keyspace", + "field": "redis.keyspace.id", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 16 + }, + "schema": "group", + "type": "terms" + }, + { + "enabled": true, + "id": "2", + "params": { + "customLabel": "Key name", + "field": "redis.key.name", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": true, + "otherBucketLabel": "Other", + "size": 20 + }, + "schema": "group", + "type": "terms" + }, + { + "enabled": true, + "id": "4", + "params": { + "customInterval": "2h", + "drop_partials": false, + "extended_bounds": {}, + "field": "@timestamp", + "interval": "auto", + "min_doc_count": 1, + "timeRange": { + "from": "now-15m", + "mode": "quick", + "to": "now" + }, + "time_zone": "Europe/Berlin", + "useNormalizedEsInterval": true + }, + "schema": "segment", + "type": "date_histogram" + } + ], + "params": { + "addLegend": true, + "addTimeMarker": false, + "addTooltip": true, + "categoryAxes": [ + { + "id": "CategoryAxis-1", + "labels": { + "show": true, + "truncate": 100 + }, + "position": "bottom", + "scale": { + "type": "linear" + }, + "show": true, + "style": {}, + "title": {}, + "type": "category" + } + ], + "grid": { + "categoryLines": false, + "style": { + "color": "#eee" + } + }, + "legendPosition": "right", + "seriesParams": [ + { + "data": { + "id": "1", + "label": "Number of elements" + }, + "drawLinesBetweenPoints": true, + "interpolate": "linear", + "mode": "normal", + "show": "true", + "showCircles": true, + "type": "line", + "valueAxis": "ValueAxis-1" + } + ], + "times": [], + "type": "line", + "valueAxes": [ + { + "id": "ValueAxis-1", + "labels": { + "filter": false, + "rotate": 0, + "show": true, + "truncate": 100 + }, + "name": "LeftAxis-1", + "position": "left", + "scale": { + "mode": "normal", + "type": "linear" + }, + "show": true, + "style": {}, + "title": { + "text": "Number of elements" + }, + "type": "value" + } + ] + }, + "title": "Lists length [Redis]", + "type": "line" + } + }, + "id": "7f4bc7d0-050c-11e9-9c60-d582a238e2c5", + "type": "visualization", + "updated_at": "2018-12-21T11:22:12.807Z", + "version": 4 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Keys by type [Redis]", + "uiStateJSON": { + "vis": { + "legendOpen": false + } + }, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": { + "customLabel": "Number of keys", + "field": "redis.key.id" + }, + "schema": "metric", + "type": "cardinality" + }, + { + "enabled": true, + "id": "2", + "params": { + "customLabel": "Key type", + "field": "redis.key.type", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 5 + }, + "schema": "group", + "type": "terms" + }, + { + "enabled": true, + "id": "3", + "params": { + "customInterval": "2h", + "customLabel": "", + "drop_partials": false, + "extended_bounds": {}, + "field": "@timestamp", + "interval": "auto", + "min_doc_count": 1, + "timeRange": { + "from": "now-15m", + "mode": "quick", + "to": "now" + }, + "time_zone": "Europe/Berlin", + "useNormalizedEsInterval": true + }, + "schema": "segment", + "type": "date_histogram" + } + ], + "params": { + "addLegend": true, + "addTimeMarker": false, + "addTooltip": true, + "categoryAxes": [ + { + "id": "CategoryAxis-1", + "labels": { + "show": true, + "truncate": 100 + }, + "position": "bottom", + "scale": { + "type": "linear" + }, + "show": true, + "style": {}, + "title": {}, + "type": "category" + } + ], + "grid": { + "categoryLines": false, + "style": { + "color": "#eee" + } + }, + "legendPosition": "right", + "seriesParams": [ + { + "data": { + "id": "1", + "label": "Number of keys" + }, + "drawLinesBetweenPoints": true, + "mode": "normal", + "show": "true", + "showCircles": true, + "type": "line", + "valueAxis": "ValueAxis-1" + } + ], + "times": [], + "type": "line", + "valueAxes": [ + { + "id": "ValueAxis-1", + "labels": { + "filter": false, + "rotate": 0, + "show": true, + "truncate": 100 + }, + "name": "LeftAxis-1", + "position": "left", + "scale": { + "mode": "normal", + "type": "linear" + }, + "show": true, + "style": {}, + "title": { + "text": "Number of keys" + }, + "type": "value" + } + ] + }, + "title": "Keys by type [Redis]", + "type": "line" + } + }, + "id": "4435ac40-050e-11e9-9c60-d582a238e2c5", + "type": "visualization", + "updated_at": "2018-12-21T11:23:46.207Z", + "version": 5 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "key": "redis.key.type", + "negate": false, + "params": { + "query": "string", + "type": "phrase" + }, + "type": "phrase", + "value": "string" + }, + "query": { + "match": { + "redis.key.type": { + "query": "string", + "type": "phrase" + } + } + } + } + ], + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Average string key size [Redis]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": { + "customLabel": "Average key size", + "field": "redis.key.length" + }, + "schema": "metric", + "type": "avg" + }, + { + "enabled": true, + "id": "3", + "params": { + "customLabel": "Keyspace", + "field": "redis.keyspace.id", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 5 + }, + "schema": "group", + "type": "terms" + }, + { + "enabled": true, + "id": "2", + "params": { + "customInterval": "2h", + "drop_partials": false, + "extended_bounds": {}, + "field": "@timestamp", + "interval": "auto", + "min_doc_count": 1, + "timeRange": { + "from": "now-15m", + "mode": "quick", + "to": "now" + }, + "time_zone": "Europe/Berlin", + "useNormalizedEsInterval": true + }, + "schema": "segment", + "type": "date_histogram" + } + ], + "params": { + "addLegend": true, + "addTimeMarker": false, + "addTooltip": true, + "categoryAxes": [ + { + "id": "CategoryAxis-1", + "labels": { + "show": true, + "truncate": 100 + }, + "position": "bottom", + "scale": { + "type": "linear" + }, + "show": true, + "style": {}, + "title": {}, + "type": "category" + } + ], + "grid": { + "categoryLines": false, + "style": { + "color": "#eee" + } + }, + "legendPosition": "right", + "seriesParams": [ + { + "data": { + "id": "1", + "label": "Average key size" + }, + "drawLinesBetweenPoints": true, + "mode": "normal", + "show": "true", + "showCircles": true, + "type": "line", + "valueAxis": "ValueAxis-1" + } + ], + "times": [], + "type": "line", + "valueAxes": [ + { + "id": "ValueAxis-1", + "labels": { + "filter": false, + "rotate": 0, + "show": true, + "truncate": 100 + }, + "name": "LeftAxis-1", + "position": "left", + "scale": { + "mode": "normal", + "type": "linear" + }, + "show": true, + "style": {}, + "title": { + "text": "Average key size" + }, + "type": "value" + } + ] + }, + "title": "Average string key size [Redis]", + "type": "line" + } + }, + "id": "8541a4a0-0513-11e9-9c60-d582a238e2c5", + "type": "visualization", + "updated_at": "2018-12-21T11:28:20.970Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "key": "redis.key.expire.ttl", + "negate": false, + "params": { + "gte": 0, + "lt": null + }, + "type": "range", + "value": "0 to +∞" + }, + "range": { + "redis.key.expire.ttl": { + "gte": 0, + "lt": null + } + } + } + ], + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Average keys TTL [Redis]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": { + "customLabel": "Average TTL", + "field": "redis.key.expire.ttl" + }, + "schema": "metric", + "type": "avg" + }, + { + "enabled": true, + "id": "4", + "params": { + "customLabel": "Keyspace", + "field": "redis.keyspace.id", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 5 + }, + "schema": "group", + "type": "terms" + }, + { + "enabled": true, + "id": "2", + "params": { + "customLabel": "Key type", + "field": "redis.key.type", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 5 + }, + "schema": "group", + "type": "terms" + }, + { + "enabled": true, + "id": "3", + "params": { + "customInterval": "2h", + "drop_partials": false, + "extended_bounds": {}, + "field": "@timestamp", + "interval": "auto", + "min_doc_count": 1, + "timeRange": { + "from": "now-15m", + "mode": "quick", + "to": "now" + }, + "time_zone": "Europe/Berlin", + "useNormalizedEsInterval": true + }, + "schema": "segment", + "type": "date_histogram" + } + ], + "params": { + "addLegend": true, + "addTimeMarker": false, + "addTooltip": true, + "categoryAxes": [ + { + "id": "CategoryAxis-1", + "labels": { + "show": true, + "truncate": 100 + }, + "position": "bottom", + "scale": { + "type": "linear" + }, + "show": true, + "style": {}, + "title": {}, + "type": "category" + } + ], + "grid": { + "categoryLines": false, + "style": { + "color": "#eee" + } + }, + "legendPosition": "right", + "seriesParams": [ + { + "data": { + "id": "1", + "label": "Average TTL" + }, + "drawLinesBetweenPoints": true, + "mode": "normal", + "show": "true", + "showCircles": true, + "type": "line", + "valueAxis": "ValueAxis-1" + } + ], + "times": [], + "type": "line", + "valueAxes": [ + { + "id": "ValueAxis-1", + "labels": { + "filter": false, + "rotate": 0, + "show": true, + "truncate": 100 + }, + "name": "LeftAxis-1", + "position": "left", + "scale": { + "mode": "normal", + "type": "linear" + }, + "show": true, + "style": {}, + "title": { + "text": "Average TTL" + }, + "type": "value" + } + ] + }, + "title": "Average keys TTL [Redis]", + "type": "line" + } + }, + "id": "517a5fd0-0514-11e9-9c60-d582a238e2c5", + "type": "visualization", + "updated_at": "2018-12-21T11:34:03.597Z", + "version": 1 + }, + { + "attributes": { + "description": "Redis keys metrics", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "controlledBy": "1545388837304", + "disabled": false, + "index": "bc2e8280-0509-11e9-9c60-d582a238e2c5", + "key": "redis.keyspace.id", + "negate": false, + "params": [ + "db0", + "db1" + ], + "type": "phrases", + "value": "db0, db1" + }, + "query": { + "bool": { + "minimum_should_match": 1, + "should": [ + { + "match_phrase": { + "redis.keyspace.id": "db0" + } + }, + { + "match_phrase": { + "redis.keyspace.id": "db1" + } + } + ] + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "darkTheme": false, + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 5, + "i": "1", + "w": 12, + "x": 0, + "y": 0 + }, + "id": "00d39210-050d-11e9-9c60-d582a238e2c5", + "panelIndex": "1", + "title": "Keyspace selector", + "type": "visualization", + "version": "6.5.2" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "2", + "w": 36, + "x": 12, + "y": 0 + }, + "id": "7f4bc7d0-050c-11e9-9c60-d582a238e2c5", + "panelIndex": "2", + "title": "Lists length", + "type": "visualization", + "version": "6.5.2" + }, + { + "embeddableConfig": { + "vis": { + "legendOpen": false + } + }, + "gridData": { + "h": 10, + "i": "3", + "w": 12, + "x": 0, + "y": 5 + }, + "id": "4435ac40-050e-11e9-9c60-d582a238e2c5", + "panelIndex": "3", + "title": "Keys by type", + "type": "visualization", + "version": "6.5.2" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "4", + "w": 24, + "x": 0, + "y": 15 + }, + "id": "8541a4a0-0513-11e9-9c60-d582a238e2c5", + "panelIndex": "4", + "title": "Average size of string keys", + "type": "visualization", + "version": "6.5.2" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "5", + "w": 24, + "x": 24, + "y": 15 + }, + "id": "517a5fd0-0514-11e9-9c60-d582a238e2c5", + "panelIndex": "5", + "title": "Average keys TTL", + "type": "visualization", + "version": "6.5.2" + } + ], + "timeRestore": false, + "title": "[Metricbeat Redis] Keys", + "version": 1 + }, + "id": "28969190-0511-11e9-9c60-d582a238e2c5", + "type": "dashboard", + "updated_at": "2018-12-21T11:39:13.143Z", + "version": 4 + } + ], + "version": "6.5.2" +} diff --git a/metricbeat/module/redis/fields.go b/metricbeat/module/redis/fields.go index 6a9a151e5d68..89c15df7ee7d 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/key/_meta/data.json b/metricbeat/module/redis/key/_meta/data.json index 55e1c81c45c1..9f1c28cbd19b 100644 --- a/metricbeat/module/redis/key/_meta/data.json +++ b/metricbeat/module/redis/key/_meta/data.json @@ -17,6 +17,7 @@ "expire": { "ttl": 360 }, + "id": "0:foo", "length": 3, "name": "foo", "type": "string" @@ -29,4 +30,4 @@ "address": "192.168.32.2:6379", "type": "redis" } -} \ No newline at end of file +} diff --git a/metricbeat/module/redis/key/_meta/docs.asciidoc b/metricbeat/module/redis/key/_meta/docs.asciidoc index b81ba13c1660..b05ac8974609 100644 --- a/metricbeat/module/redis/key/_meta/docs.asciidoc +++ b/metricbeat/module/redis/key/_meta/docs.asciidoc @@ -23,3 +23,10 @@ whose name starts with `pipeline-*`, with a limit of 20 keys. - name: 'pipeline-*' limit: 20 ------------------------------------------------------------------------------ + +[float] +=== Dashboard + +The Redis key metricset comes with a predefined dashboard. For example: + +image::./images/metricbeat_redis_key_dashboard.png[] diff --git a/metricbeat/module/redis/key/_meta/fields.yml b/metricbeat/module/redis/key/_meta/fields.yml index df87127e3f5f..a6be2ab81f62 100644 --- a/metricbeat/module/redis/key/_meta/fields.yml +++ b/metricbeat/module/redis/key/_meta/fields.yml @@ -9,6 +9,11 @@ description: > Key name. + - name: id + type: keyword + description: > + Unique id for this key (With the form :). + - name: type type: keyword description: > diff --git a/metricbeat/module/redis/key/data.go b/metricbeat/module/redis/key/data.go index 41a8071bac0f..65061b83c0ff 100644 --- a/metricbeat/module/redis/key/data.go +++ b/metricbeat/module/redis/key/data.go @@ -25,6 +25,7 @@ import ( ) func eventMapping(r mb.ReporterV2, keyspace uint, info map[string]interface{}) { + info["id"] = fmt.Sprintf("%d:%s", keyspace, info["name"]) r.Event(mb.Event{ MetricSetFields: info, ModuleFields: common.MapStr{