From 2f6e3ea663cd3adce01556331396c00bd06bfcfa Mon Sep 17 00:00:00 2001
From: Mario Castro <mariocaster@gmail.com>
Date: Tue, 14 Jul 2020 17:33:16 +0200
Subject: [PATCH] Add cache, rows stats and connection errors data to status
 metricset in MySQL module (#19844)

---
 CHANGELOG.next.asciidoc                       |   1 +
 metricbeat/docs/fields.asciidoc               | 197 +++++++++++++++-
 metricbeat/module/mysql/fields.go             |   2 +-
 .../module/mysql/status/_meta/data.json       | 217 +++++++++++-------
 .../module/mysql/status/_meta/fields.yml      |  97 +++++++-
 metricbeat/module/mysql/status/data.go        |  30 +++
 6 files changed, 449 insertions(+), 95 deletions(-)

diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc
index a64c23d273d0..a78735eec6fb 100644
--- a/CHANGELOG.next.asciidoc
+++ b/CHANGELOG.next.asciidoc
@@ -570,6 +570,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
 - Added `performance` and `query` metricsets to `mysql` module. {pull}18955[18955]
 - The `elasticsearch-xpack/index` metricset now reports hidden indices as such. {issue}18639[18639] {pull}18706[18706]
 - Adds support for app insights metrics in the azure module. {issue}18570[18570] {pull}18940[18940]
+- Added cache and connection_errors metrics to status metricset of MySQL module {issue}16955[16955] {pull}19844[19844]
 
 *Packetbeat*
 
diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc
index 2c9c7c001248..29ccf23b0b1a 100644
--- a/metricbeat/docs/fields.asciidoc
+++ b/metricbeat/docs/fields.asciidoc
@@ -32345,6 +32345,153 @@ type: long
 The number of failed attempts to connect to the MySQL server.
 
 
+type: long
+
+--
+
+[float]
+=== connection
+
+
+
+
+[float]
+=== errors
+
+
+
+
+*`mysql.status.connection.errors.peer_address`*::
++
+--
+The number of errors that occurred while searching for connecting client IP addresses.
+
+type: long
+
+--
+
+*`mysql.status.connection.errors.accept`*::
++
+--
+The number of errors that occurred during calls to accept() on the listening port.
+
+type: long
+
+--
+
+*`mysql.status.connection.errors.internal`*::
++
+--
+The number of connections refused due to internal errors in the server, such as failure to start a new thread or an out-of-memory condition.
+
+
+type: long
+
+--
+
+*`mysql.status.connection.errors.max`*::
++
+--
+The number of connections refused because the server max_connections limit was reached. thread or an out-of-memory condition.
+
+type: long
+
+--
+
+*`mysql.status.connection.errors.tcpwrap`*::
++
+--
+The number of connections refused by the libwrap library.
+
+type: long
+
+--
+
+*`mysql.status.connection.errors.select`*::
++
+--
+The number of errors that occurred during calls to select() or poll() on the listening port. (Failure of this operation does not necessarily means a client connection was rejected.)
+
+
+type: long
+
+--
+
+[float]
+=== cache
+
+
+
+
+[float]
+=== ssl
+
+SSL session cache hits and misses.
+
+
+*`mysql.status.cache.ssl.hits`*::
++
+--
+The number of SSL session cache hits.
+
+type: long
+
+--
+
+*`mysql.status.cache.ssl.misses`*::
++
+--
+The number of SSL session cache misses.
+
+type: long
+
+--
+
+*`mysql.status.cache.ssl.size`*::
++
+--
+The SSL session cache size.
+
+type: long
+
+--
+
+[float]
+=== table
+
+
+
+
+[float]
+=== open_cache
+
+
+
+
+*`mysql.status.cache.table.open_cache.hits`*::
++
+--
+The number of hits for open tables cache lookups.
+
+type: long
+
+--
+
+*`mysql.status.cache.table.open_cache.misses`*::
++
+--
+The number of misses for open tables cache lookups.
+
+type: long
+
+--
+
+*`mysql.status.cache.table.open_cache.overflows`*::
++
+--
+Number of times, after a table is opened or closed, a cache instance has an unused entry and the size of the instance is larger than table_open_cache / table_open_cache_instances
+
+
 type: long
 
 --
@@ -32737,7 +32884,7 @@ type: long
 *`mysql.status.handler.read.last`*::
 +
 --
-The number of requests to read the last key in an index. 
+The number of requests to read the last key in an index.
 
 
 type: long
@@ -32767,7 +32914,7 @@ type: long
 *`mysql.status.handler.read.rnd`*::
 +
 --
-The number of requests to read a row based on a fixed position. 
+The number of requests to read a row based on a fixed position.
 
 
 type: long
@@ -32777,7 +32924,7 @@ type: long
 *`mysql.status.handler.read.rnd_next`*::
 +
 --
-The number of requests to read the next row in the data file. 
+The number of requests to read the next row in the data file.
 
 
 type: long
@@ -32840,6 +32987,48 @@ type: long
 
 
 
+[float]
+=== rows
+
+
+
+
+*`mysql.status.innodb.rows.reads`*::
++
+--
+The number of rows reads into InnoDB tables.
+
+type: long
+
+--
+
+*`mysql.status.innodb.rows.inserted`*::
++
+--
+The number of rows inserted into InnoDB tables.
+
+type: long
+
+--
+
+*`mysql.status.innodb.rows.deleted`*::
++
+--
+The number of rows deleted into InnoDB tables.
+
+type: long
+
+--
+
+*`mysql.status.innodb.rows.updated`*::
++
+--
+The number of rows updated into InnoDB tables.
+
+type: long
+
+--
+
 [float]
 === buffer_pool
 
@@ -32875,7 +33064,7 @@ type: long
 *`mysql.status.innodb.buffer_pool.bytes.data`*::
 +
 --
-The total number of bytes in the InnoDB buffer pool containing data. 
+The total number of bytes in the InnoDB buffer pool containing data.
 
 
 type: long
diff --git a/metricbeat/module/mysql/fields.go b/metricbeat/module/mysql/fields.go
index 8b04d180f45f..227a3306ea60 100644
--- a/metricbeat/module/mysql/fields.go
+++ b/metricbeat/module/mysql/fields.go
@@ -32,5 +32,5 @@ func init() {
 // AssetMysql returns asset data.
 // This is the base64 encoded gzipped contents of module/mysql.
 func AssetMysql() string {
-	return "eJzkXc1z2ziyv+ev6JrLZKocvbnsYVP1tsrrOLuuip2s7ey8d9K0yBaJNQgwAChF89e/QoNfkkiJ+qCct6tLbIsEft3obzSQd/BCq/eQrew3+QbACSfpPfx0v3r6x6ef3gDEZCMjcie0eg9/eQMAwN+BJbMgA9ahKyxk5IyILERaSoocxTA3OguPTt4A2FQbN420movkPcxRWnoDYEgSWnoPCb4BmAuSsX3Pc7wDhRk1uPzHrXL/qNFFXv6lA5z//M5v/Q6RVg6FsuBSqhG6FB0syRDomf92DWo9xLeCzGpS/toG1gaXoCSD08CC+tsuoP5TEzsjh62/9xDBhKzNMJyg2YqfKNfGrxbTA1rB33jESWuaTeraFGKey9XaN33U7aHEf679YBWoMOtk46EuLG08Wmva+rKCFOtiJru+3oPLf/6ul6DnjhSTLIJgGy/HSyMcvbPkAjOESkAX7p2ev9MmJgNvczQoJUnxB/oZgOZzEQlS0eqXhrxdFMmRKWooWKIFq8FKvQSnA0Gl/DTPCJdCKpLU84C+Kf2zDdIVGBMDofEM2ly68PknyoIsRFJbMn6OX8HQPPyIkBhCRwYSzL0WLIlUAIMqhjnaFg47gHdLoWK9HIV71wsymBDEwjpUEdVwmTPWMWKpl/7HSKuoMIaUk6uaS8y6Hhoq/BEZdy7luiHjxFxEQQZPUrKYcjutCH917jIjYeHlKohqhApmBLm2VsxaHBcKKlWEt7l2pJxACTElhgj0HDYUdYh2ChXT96kVf/TzQWqVHMeF55RAFdmMjEdHyhlB1pPhbXe0tp6MYxBeR2aB41iUatUazM6gshj5lywYikgsvMVMhSTA9rdgKJeeGOrT61onZGEdmbOpRRjuNIXwYctUxGOIgHYoWwwtqYeM/F9sKnKIUlQJWUgxz0lRPEAKRpLXm2DkWnBLmLXMBvRDEG6GTOsYX2i11KaL4QNgPoWl9uKZCluzNNJZrhUpN4Fnb0aEvYJlSs77OQ9e6ZhAWG8lnH8Z4cvj3f314/+CNvDw+WFa/doMtEeSdZaJ89l3Hu3Hj57WtN7HG4ENPpLSBTOWw6bTvfvxcny0b29IGeTdtVKcCnWKQLeI70F/N2dRDc5QWPj88eNVI7wpWlDawYpcMzkHXmoV1IG2tWFLiLxfEhYyXHkvG3uvqyETNuRuhWGHNIGblKIXHpKM0QakTmCuDeRG52QgFpgobZ2I9hl8WmzagaN1BG4XFj4epRq0ENGmru5brCGIAOCTsC5kbF+/3n34mS0TSslrZsPEVQ7aaUTXCQxPh3cjVH69Df1Lr1tgKJQTEla6AEOcyPhvhQnpdOwXKSJre50xbJjqfqtxmqVO9TJwhuMWhTLMVgnr7T+f4IvRTkda7pGiudTLaeQ2A5+jRemjz0putHJGyyOtbY6F3VJ+OIu99ZHj3JRG1jNLZARWeFvm+SZ9JvXx09env8PT8/Xz1ye2XN6qcQBdxWKVhQ5AK1X3nORCg2kzvf25U6DZbfqVt1eQ6iVkRZSGmoPEhUeQePvkczufMMd6eWiEEEBNVX+QcFrg7TjyCozLfVQjvPMqWRGkMCO0hQmZhUKlLUVaxUN0xlC0GAH3I7nClNWfJgj7eDP9cv316RZo4e35uj+ogvIrECqSRexXw6Xa0vpjdi2caX++KileCDJt6+BjgUbgTJINvifShddetv4ccWlFEGsKzsiQJeehmVXgNhulIojDWpVtlw0i1W+cL8rPH5BRFZO81k/rEKXTEHawag+bvKpY+laQty2BR1c+IOYA6Koy1GxwmuioFQLuw6yjrWT1aJv94BfJ5hT5vPk8md9sPsWZNm4UK7SR+zEv1lPqprTLKEJlN1jYtedCxi0U0HeKih18h43q03SOQhaGXpM+D4HijYKHI9uXX8FWjvVK6GuBP9UjdMn6QJjrMu9n6ZF02CHtbaDfCiq6ohLYx9OBgKFVSHgrlM/AHCrShf0FJKnEpZVRYWIYzg7+bkGf4qIP3Z646wACHmtoFWYMOWUMekGmLsMNicm6vQm0aulaWRGTwZlcgUSTcMECFfw6+dXHKCqoUe2myqwgFPebejqg5RJ773TIrm4FaKip5fmgcSmkhIQUGR8VIUjNeXw7jHSp0c5JoZKD1irD7yOLmvdfGX4XWZH1itdhqzSELKEuQZZQY5LVWK5c4uoSJnazXowrWyUlaFdZ2O/0hvgFEoOqkGiEGxg+9udhZzO+PjT8tzG+nmU/qPF9qqF1G9+hyfBphleomPczesygj5EVuaU2L/zXIknzwoGw9kCOvqaJbITg38pEno2sC5TI7qrCWOjbqLOaj0/3ZZUi2M89eZYhjLv7OI6qQ//W2jcp+4CEDZOwtY4iyh0nrWLvhl8VapwrC/yNI54nctXIp+79FaPUHra8XytSq6MvLgqHWhtXfAfI4mzlRszmrPiDTgTbjivOteaPLRt8WusDOpxehoV+qmZbfIiZeaGLhGF+msOBXYhrh4NjibwQuiD9M+EOxDiWkdlpYyp88JYjV6fbyjukOeYVTM02T+v9AjJzbbKNlqVui7Kr47I1Tqvfsuq1NCSx3FT1vq/1cGgZCK2xIbJeA9LX/Lmr+TLUn7n5kzL/4y6j+EiRNrGF+umqfG2LLEMj/iiLh1FKGXJaH4uEtsoB/SZ4n+n8OcPvEx97m8kShfv5JMG4L+NRP1II6KvYraGmLs+j45qFf2w7yqrh+QBvYolUP7K4O4xbQ/bswaCDZSrKHa/AR95J4+K/d4jcLuAn68fzrUDlhKTJn/90Gq98oPvnP7nUS6OfWciGW7UweLFV0eqKu+REVO1l9TvCLuFocDn63vXlGq4vLeUoxa5n1JonbAcn1qE5jSUPtcXbkpf+yXGRnE1+qxaT0+S3guZwJmkq9NQPd2S3RGUfeCy4+6/PjM16m8DNhQdqu579i3Y0TPQVVYYUQYKs7MwO+1OqLbqfguT5oXfO2vvAEXM+M487R1xrLJ30THqGvPEBG5njucq9JLTAO9zLlMLO4ro8BKHkxwwLDMWTug+uKnmUMlu/2QmAZ2EfaUSGppSyCTx8/fSJq9abo4Q3lK4evFOWjLOsGmHnNAZMvDd2cPfw4fZ/pg/X97fw3zzi7shqMicXpWeyKCgl8HigcwrdUBb+Ar9uRSS8Z7s3FjnmVAiP/HsVlJALeMhCVFinsyrxbnqKClt14K8HKLuOgfS2ah4eU53p+Mqki23J0Giq3EE9V8p5XW7InlZckKLTJ527t7zsBuzbU6YIi7IjJCCCWHgbIVyqC8eHOULfCLVGKjv95JACfPnW+ISWe8noHGW5d666mrsK2duH1/ZUKGZCSb0J60iB2SsJGKU0iYV9mRb2XM3be2YbaaJd6eHR6vZXPxgr28FK1lNg5Fd9fOpGzGTXhJNn2aiXeW9SWoGR+qD20XgkGVXNYD8BdRSbGsKtlONoiXgOwx0nE6wAoxzoWLe7PE1F+RBDyQfkLgAszHMIsp5u9hGwNa3rg9GZQinROf15sZXz7EG2wTPvdjulfng7XvfwncIykoNyWR7cEwfs5zKWO6ebiwtNNB5JzZFKiatLLRUfyBidcYLzs2m3VT/7bFwFHnWJ5rKw6bTc9B1FXzP8PuWm9pHtgs636o4jSdpFNNQ6Q5iNbwhGNwKaz292G9DzOIQgvJdZ+5gk7eh6OJfH/XD76fb5ti5phIYNPtJU5IMORNvtQ/bnR3n38HT7+Hw0SktyVzX1XCifbj/d3hyPssh7NkjOi/Lrlw/XB654u+QmTtatbljNNlzZZd8qVIVqQjg4WR36KA/ckO18cylcKhRYpw3xebzEYGavoAinSPyo/yjIhpJNNeQE7lxzYIRLm3Dz+X765e7hb6AN//z0fP189/R8d1M3MO2LUr9V87wq22puaVVeElO+VSWarV6j2apKOXkj0zPjeB6zkDUcXl/DHmZfbbC6+v3+efrl8fbL9eNt6y83nz4/3V4163P/PH28fbp9Hro+KapYnutGhP3tTh2H1ndKwwCJ2JaK+rznzef7+7vn1vINsEMX8jxOZNVWh9FLCykuCGZEqgRQndlldz4ANn0PNE+ljl5GQl8146nIlNrg1uR5rg0QRilEKKXXKsEK0wL29heYF4qD06tykzu0/ku5Ah1FhbFQnjaYUSJCOuy1kFTM2yNRRNaGzQZX2sHNzYZeFmXGTIW6gPxVa1tzrLBkAdlWYEJAKhGKfraglwruC+nEu0dUCcEjYQwiyyWzN3Sc8Xk+JjUQP+R0q6EczRgyfL1xzJCquSBP0YY9waV+F34J2t7ayBp0HgBHaKYfsjE8F6b3+Mo5u4a7xITn5jt6VnxSuLySp9wpxaHNzy+02YU7LgGG2LuzPnqYgN6WwQwtxaAVoEc0ELvsPzx0IfB1n/YLra3CBIZRoLq7Vi5MgUfBqyAUE7LvPhRYtxtdxwgvTIFHIXRhj6XCdB7HuSARW1owF999iKitCLebDKZj+uPJFPekoUOuzuwipSZDSznD0WKSDujeNW06W09P2U/J6xMwNb5pSBqNC8q1GKeV9kBKJEbkv6kgHQJ/+uOsiEcCvBAc0R1CzoXKBW19CFOW6s0XenBcNuSyKSMujDVUpoZibepZSsezTTrOmgzW+/fFfE5mmnddULor2tvDlf5Ir87viizfvlR3c/JeuzrIqj6zG9OJ8cmKT1tUY2mCZY20Kb0d8vV7JOPKut4ppT/8tWQQeAZdgTMiSci0qxvO8UHAeblo0xZDp0wjuqlNC8e342jT+5jSy52OtblMA+PX5tsSTQZF3sMmzxvvszxfWOQtuXAzZ8LnLY0hm2sVbqnRfvDysllgo8P8FxkdzG3mjOd2qCL2MJufGsrsvnaKfZnQID7vyobWDyv1Bg17g4/B4Uf7vqTNLpBehah6/fj2J3S4L6Rqd54b15ckjUVWtHWzZSCvUnrGVEppL8mDxIbH+A8RmzXXt4d5W/LyY4rLtqCcLhqwuQnd2WMzDj3doQmjKGmqe4hPocpQX2/9mCT5ac+2MhJdT8vY2GSUM5+NkkzY6BXI2GcA6nMws8Ku2j3Jq1blHaXU4dAiJyxxJpSwzocfC+LbH1LC+ApsEaWAoT4hdfRioayFYow5P5uiTffeqr3ON3YVF3ZM1SHIvqiT7zxPdm4/7K3cXtD1YNoHAS4ge1wtEarcS+yOTsMVOhi/Y6ic+Xq+qKoZcbC08PvT8nbX/9ckt04M2GIWLgN0clXfXFsdE0hx4b130FPeCAnh+e5rIPo4118jHJNrPxlUsc5+ajHE2yzhBJYb14GHg4mp3Opr+A2diAhlkIEKx7Agtfv/JLmgoejrKWzDGJtn5d5vqTSRLmTZaoBO2PmqiYzWLDKqGFKM6+psLAxFXl348VjYlwNkx5v/XRn9GMyw9fX52zURdkc9liReKcw88+RqIz+vcvNwFnEr7eZBczSYkSPTHmcwp5Yo3PRiUeaDNlkgM3SlQr95Df9pQxX1NKZ1Ar+lpKo3FFHc1PO1KTu7+T7ihMoeF4gkYenuOU7CBQqJM0lX1Tghe7BgdUZriUnYveS7/PjQb9gaRre+vnMfTKVlC0y1i8z/2noTv/x/FciGs83D7AmzabrTFJ6rNrVx14WFWIdCdl/Q/H8BAAD//468214="
+	return "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"
 }
diff --git a/metricbeat/module/mysql/status/_meta/data.json b/metricbeat/module/mysql/status/_meta/data.json
index 09c4e618c202..d4bba333e0e8 100644
--- a/metricbeat/module/mysql/status/_meta/data.json
+++ b/metricbeat/module/mysql/status/_meta/data.json
@@ -1,41 +1,105 @@
 {
-    "@timestamp": "2017-10-12T08:05:34.853Z",
-    "event": {
-        "dataset": "mysql.status",
-        "duration": 115000,
-        "module": "mysql"
+    "@timestamp": "2020-07-13T16:36:00.626Z",
+    "@metadata": {
+        "beat": "metricbeat",
+        "type": "_doc",
+        "version": "8.0.0"
     },
-    "metricset": {
-        "name": "status"
+    "agent": {
+        "version": "8.0.0",
+        "ephemeral_id": "d9d0d455-c440-453e-aea3-3b6fa512f6f3",
+        "id": "803dfdba-e638-4590-a2de-80cb1cebe78d",
+        "name": "mcastro",
+        "type": "metricbeat"
     },
     "mysql": {
         "status": {
-            "aborted": {
-                "clients": 3,
-                "connects": 4
+            "connections": 28,
+            "threads": {
+                "running": 2,
+                "cached": 1,
+                "created": 4,
+                "connected": 3
             },
-            "binlog": {
-                "cache": {
-                    "disk_use": 0,
-                    "use": 0
+            "innodb": {
+                "rows": {
+                    "updated": 0,
+                    "deleted": 0,
+                    "inserted": 0,
+                    "reads": 0
+                },
+                "buffer_pool": {
+                    "write_requests": 1634,
+                    "bytes": {
+                        "data": 15908864,
+                        "dirty": 0
+                    },
+                    "pages": {
+                        "data": 971,
+                        "dirty": 0,
+                        "flushed": 144,
+                        "free": 7216,
+                        "misc": 5,
+                        "total": 8192
+                    },
+                    "read": {
+                        "requests": 15600,
+                        "ahead": 0,
+                        "ahead_evicted": 0,
+                        "ahead_rnd": 0
+                    },
+                    "pool": {
+                        "reads": 830,
+                        "wait_free": 0
+                    }
                 }
             },
-            "bytes": {
-                "received": 1272,
-                "sent": 47735
-            },
-            "command": {
+            "handler": {
+                "update": 315,
+                "read": {
+                    "rnd_next": 394983,
+                    "first": 33,
+                    "key": 2100,
+                    "last": 0,
+                    "next": 4533,
+                    "prev": 0,
+                    "rnd": 2494
+                },
+                "write": 168505,
+                "mrr_init": 0,
                 "delete": 0,
-                "insert": 0,
-                "select": 1,
-                "update": 0
+                "external_lock": 8167,
+                "savepoint_rollback": 0,
+                "rollback": 0,
+                "commit": 625,
+                "savepoint": 0,
+                "prepare": 0
+            },
+            "bytes": {
+                "sent": 6228481,
+                "received": 143324
             },
-            "connections": 12,
             "created": {
                 "tmp": {
+                    "tables": 364,
                     "disk_tables": 0,
-                    "files": 5,
-                    "tables": 6
+                    "files": 5
+                }
+            },
+            "binlog": {
+                "cache": {
+                    "disk_use": 0,
+                    "use": 0
+                }
+            },
+            "connection": {
+                "errors": {
+                    "max": 0,
+                    "peer_address": 0,
+                    "select": 0,
+                    "tcpwrap": 0,
+                    "accept": 0,
+                    "internal": 0
                 }
             },
             "delayed": {
@@ -43,74 +107,59 @@
                 "insert_threads": 0,
                 "writes": 0
             },
-            "flush_commands": 1,
-            "handler": {
-                "commit": 0,
-                "delete": 0,
-                "external_lock": 140,
-                "mrr_init": 0,
-                "prepare": 0,
-                "read": {
-                    "first": 3,
-                    "key": 2,
-                    "last": 0,
-                    "next": 32,
-                    "prev": 0,
-                    "rnd": 0,
-                    "rnd_next": 1728
-                },
-                "rollback": 0,
-                "savepoint": 0,
-                "savepoint_rollback": 0,
+            "max_used_connections": 4,
+            "opened_tables": 195,
+            "queries": 1183,
+            "flush_commands": 3,
+            "command": {
+                "insert": 0,
+                "select": 705,
                 "update": 0,
-                "write": 1705
+                "delete": 0
             },
-            "innodb": {
-                "buffer_pool": {
-                    "bytes": {
-                        "data": 6914048,
-                        "dirty": 0
-                    },
-                    "pages": {
-                        "data": 422,
-                        "dirty": 0,
-                        "flushed": 207,
-                        "free": 7768,
-                        "misc": 1,
-                        "total": 8191
-                    },
-                    "pool": {
-                        "reads": 423,
-                        "wait_free": 0
-                    },
-                    "read": {
-                        "ahead": 0,
-                        "ahead_evicted": 0,
-                        "ahead_rnd": 0,
-                        "requests": 14198
-                    },
-                    "write_requests": 207
+            "aborted": {
+                "clients": 0,
+                "connects": 2
+            },
+            "cache": {
+                "table": {
+                    "open_cache": {
+                        "hits": 3889,
+                        "misses": 195,
+                        "overflows": 0
+                    }
+                },
+                "ssl": {
+                    "size": 128,
+                    "hits": 0,
+                    "misses": 0
                 }
             },
-            "max_used_connections": 3,
+            "questions": 1173,
             "open": {
-                "files": 16,
                 "streams": 0,
-                "tables": 60
-            },
-            "opened_tables": 67,
-            "queries": 10,
-            "questions": 9,
-            "threads": {
-                "cached": 0,
-                "connected": 3,
-                "created": 3,
-                "running": 1
+                "tables": 116,
+                "files": 2
             }
         }
     },
+    "event": {
+        "dataset": "mysql.status",
+        "module": "mysql",
+        "duration": 1871014
+    },
+    "metricset": {
+        "name": "status",
+        "period": 10000
+    },
     "service": {
-        "address": "127.0.0.1:3306",
+        "address": "172.17.0.2:3306",
         "type": "mysql"
+    },
+    "ecs": {
+        "version": "1.5.0"
+    },
+    "host": {
+        "name": "mcastro"
     }
-}
\ No newline at end of file
+}
diff --git a/metricbeat/module/mysql/status/_meta/fields.yml b/metricbeat/module/mysql/status/_meta/fields.yml
index 56fd1580b0fe..74cd2f54e7fa 100644
--- a/metricbeat/module/mysql/status/_meta/fields.yml
+++ b/metricbeat/module/mysql/status/_meta/fields.yml
@@ -19,6 +19,75 @@
           description: >
             The number of failed attempts to connect to the MySQL server.
 
+    - name: connection
+      type: group
+      description: >
+      fields:
+        - name: errors
+          type: group
+          description: >
+          fields:
+            - name: peer_address
+              type: long
+              description: The number of errors that occurred while searching for connecting client IP addresses.
+            - name: accept
+              type: long
+              description: The number of errors that occurred during calls to accept() on the listening port.
+            - name: internal
+              type: long
+              description: >
+                The number of connections refused due to internal errors in the server, such as failure to start a new
+                thread or an out-of-memory condition.
+            - name: max
+              type: long
+              description: The number of connections refused because the server max_connections limit was reached.
+                thread or an out-of-memory condition.
+            - name: tcpwrap
+              type: long
+              description: The number of connections refused by the libwrap library.
+            - name: select
+              type: long
+              description: >
+                The number of errors that occurred during calls to select() or poll() on the listening port.
+                (Failure of this operation does not necessarily means a client connection was rejected.)
+
+    - name: cache
+      type: group
+      description: >
+      fields:
+        - name: ssl
+          type: group
+          description: SSL session cache hits and misses.
+          fields:
+            - name: hits
+              type: long
+              description: The number of SSL session cache hits.
+            - name: misses
+              type: long
+              description: The number of SSL session cache misses.
+            - name: size
+              type: long
+              description: The SSL session cache size.
+        - name: table
+          type: group
+          description: >
+          fields:
+            - name: open_cache
+              type: group
+              description: >
+              fields:
+                - name: hits
+                  type: long
+                  description: The number of hits for open tables cache lookups.
+                - name: misses
+                  type: long
+                  description: The number of misses for open tables cache lookups.
+                - name: overflows
+                  type: long
+                  description: >
+                    Number of times, after a table is opened or closed, a cache instance has an unused entry and the
+                    size of the instance is larger than table_open_cache / table_open_cache_instances
+
     - name: binlog
       type: group
       description: >
@@ -217,7 +286,7 @@
             - name: last
               type: long
               description: >
-                The number of requests to read the last key in an index. 
+                The number of requests to read the last key in an index.
 
             - name: next
               type: long
@@ -232,12 +301,12 @@
             - name: rnd
               type: long
               description: >
-                The number of requests to read a row based on a fixed position. 
+                The number of requests to read a row based on a fixed position.
 
             - name: rnd_next
               type: long
               description: >
-                The number of requests to read the next row in the data file. 
+                The number of requests to read the next row in the data file.
 
         - name: rollback
           type: long
@@ -264,10 +333,26 @@
           description: >
             The number of requests to insert a row in a table.
 
-    - name: innodb 
+    - name: innodb
       type: group
       description: >
       fields:
+      - name: rows
+        type: group
+        description: >
+        fields:
+          - name: reads
+            type: long
+            description: The number of rows reads into InnoDB tables.
+          - name: inserted
+            type: long
+            description: The number of rows inserted into InnoDB tables.
+          - name: deleted
+            type: long
+            description: The number of rows deleted into InnoDB tables.
+          - name: updated
+            type: long
+            description: The number of rows updated into InnoDB tables.
       - name: buffer_pool
         type: group
         description: >
@@ -289,7 +374,7 @@
               - name: data
                 type: long
                 description: >
-                  The total number of bytes in the InnoDB buffer pool containing data. 
+                  The total number of bytes in the InnoDB buffer pool containing data.
 
               - name: dirty
                 type: long
@@ -381,4 +466,4 @@
           - name: write_requests
             type: long
             description: >
-              The number of writes done to the InnoDB buffer pool.
\ No newline at end of file
+              The number of writes done to the InnoDB buffer pool.
diff --git a/metricbeat/module/mysql/status/data.go b/metricbeat/module/mysql/status/data.go
index de1f9579e952..ab55a47e450e 100644
--- a/metricbeat/module/mysql/status/data.go
+++ b/metricbeat/module/mysql/status/data.go
@@ -125,6 +125,36 @@ var (
 				},
 				"write_requests": c.Int("Innodb_buffer_pool_write_requests"),
 			},
+			"rows": s.Object{
+				"reads":    c.Int("Innodb_rows_read"),
+				"updated":  c.Int("Innodb_rows_updated"),
+				"deleted":  c.Int("Innodb_rows_deleted"),
+				"inserted": c.Int("Innodb_rows_inserted"),
+			},
+		},
+		"cache": s.Object{
+			"table": s.Object{
+				"open_cache": s.Object{
+					"hits":      c.Int("Table_open_cache_hits"),
+					"misses":    c.Int("Table_open_cache_misses"),
+					"overflows": c.Int("Table_open_cache_overflows"),
+				},
+			},
+			"ssl": s.Object{
+				"hits":   c.Int("Ssl_session_cache_hits"),
+				"misses": c.Int("Ssl_session_cache_misses"),
+				"size":   c.Int("Ssl_session_cache_size"),
+			},
+		},
+		"connection": s.Object{
+			"errors": s.Object{
+				"accept":       c.Int("Connection_errors_accept"),
+				"internal":     c.Int("Connection_errors_internal"),
+				"max":          c.Int("Connection_errors_max_connections"),
+				"peer_address": c.Int("Connection_errors_peer_address"),
+				"select":       c.Int("Connection_errors_select"),
+				"tcpwrap":      c.Int("Connection_errors_tcpwrap"),
+			},
 		},
 	}
 )