diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b6f0ac1848a..70cd0402bf9 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -140,6 +140,7 @@ https://github.com/elastic/beats/compare/v6.6.0...6.x[Check the HEAD diff] - Add support for iis 7.5 log format. {issue}9753[9753] {pull}9967[9967] - Add support for MariaDB in the `slowlog` fileset of `mysql` module. {pull}9731[9731] - Add convert_timezone to nginx module. {issue}9839[9839] {pull}10148[10148] +- Add support for Percona in the `slowlog` fileset of `mysql` module. {issue}6665[6665] {pull}10227[10227] *Heartbeat* - Made monitors.d configuration part of the default config. {pull}9004[9004] diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index bdc1f1b5ac6..eb1cc30d785 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -4125,6 +4125,18 @@ type: long The unix timestamp taken from the `SET timestamp` query. +-- + +*`mysql.slowlog.bytes_sent`*:: ++ +-- +type: long + +format: bytes + +The size of the query result. + + -- *`mysql.slowlog.query`*:: @@ -4163,6 +4175,26 @@ type: keyword Current authenticated user, used to determine access privileges. Can differ from the value for user. +-- + +*`mysql.slowlog.last_errno`*:: ++ +-- +type: keyword + +Last SQL error seen. + + +-- + +*`mysql.slowlog.killed`*:: ++ +-- +type: keyword + +Code of the reason if the query was killed. + + -- *`mysql.slowlog.query_cache_hit`*:: @@ -4193,6 +4225,37 @@ type: boolean Whether the query needed temporary tables on disk. +-- + +*`mysql.slowlog.tmp_tables`*:: ++ +-- +type: long + +Number of temporary tables created for this query + + +-- + +*`mysql.slowlog.tmp_disk_tables`*:: ++ +-- +type: long + +Number of temporary tables created on disk for this query. + + +-- + +*`mysql.slowlog.tmp_table_sizes`*:: ++ +-- +type: long + +format: bytes + +Size of temporary tables created for this query. + -- *`mysql.slowlog.filesort`*:: @@ -4253,6 +4316,105 @@ type: long Number of merge passes executed for the query. +-- + +*`mysql.slowlog.log_slow_rate_type`*:: ++ +-- +type: keyword + +Type of slow log rate limit, it can be `session` if the rate limit is applied per session, or `query` if it applies per query. + + +-- + +*`mysql.slowlog.log_slow_rate_limit`*:: ++ +-- +type: keyword + +Slow log rate limit, a value of 100 means that one in a hundred queries or sessions are being logged. + + +-- + +[float] +== innodb fields + +Contains fields relative to InnoDB engine + + + +*`mysql.slowlog.innodb.trx_id`*:: ++ +-- +type: keyword + +Transaction ID + + +-- + +*`mysql.slowlog.innodb.io_r_ops`*:: ++ +-- +type: long + +Number of page read operations. + + +-- + +*`mysql.slowlog.innodb.io_r_bytes`*:: ++ +-- +type: long + +format: bytes + +Bytes read during page read operations. + + +-- + +*`mysql.slowlog.innodb.io_r_wait.sec`*:: ++ +-- +type: long + +How long it took to read all needed data from storage. + + +-- + +*`mysql.slowlog.innodb.rec_lock_wait.sec`*:: ++ +-- +type: long + +How long the query waited for locks. + + +-- + +*`mysql.slowlog.innodb.queue_wait.sec`*:: ++ +-- +type: long + +How long the query waited to enter the InnoDB queue and to be executed once in the queue. + + +-- + +*`mysql.slowlog.innodb.pages_distinct`*:: ++ +-- +type: long + +Approximated count of pages accessed to execute the query. + + -- [[exported-fields-nginx]] diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index b16afdf2e4c..db4ba885a3d 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -31,5 +31,5 @@ func init() { // Asset returns asset data func Asset() string { - return "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" + return "eJzsfW9z3DaS9/t8CpTuxdpX4/HfeDe+eq7OK9mJdu1Ya8m7z503NcKQmBlEJMAAoKTJ1X33p9AASJAE/81QUvLc+JXFIbt/aACNRqO78QRdke0blPD1NwgpqhLyBn3ga7SiCUERZ4ow9Q1CMZGRoJminL1B//4NQggdc6YwZVJ/a15PKCNy/g1CK0qSWL6B154ghlPyBkmei4jAI4TUNiNvNOcbLmL7TJBfcipI/AYpkbsXA3z1v4sNMSxXgqfoZkOjDVIbgwDdYIkEwfEcXWyoNGCgKYBWv4aXkie5IijDaoMUh4ea3rzg8J4LRG5xmmmBXD69xuJpwtdP5VYqks4Tvr6cf1NpH1+tJFGV9iWcrRuNW+FEDm2doQnoBMm4UCQ2TZQKCyURVjUQKZESr6tSVuTWwaJrxgVZ4CW/Jm/Qsx0Fb0cF4qtS5lrepjPgkR0RNXRSCYLTQUNggJT0KDUU0c2GMIBA2dr1NBEahpyhCDO0JOgPUsU8V39AXMD/iRB/qMLLBJcZiRQXcw2uWzqZIBFW+vHr+ct+mVGW5QraXB+y5FrLUo/ZNWFEaJqVgUslgjFgBuk1TnKCNEy6oiQueKy4gN8vNYtLxAEEogweGuaSRPDQdtt7mpAlwUrLa0Vtf6FHJ+/OPr87fnvx7uQNkoSgS/gYBHL5uCqv8pcdB9LvRCjVVuthtlA0JVLhNOtu5ClDEZbE8lsTqVBGMwIzJsNCEqOOCmrVGWTnmZwhqpBUXBBZUNbvcEHXlOEEXf5HQeESPRJ6bErClJ4MjryZIo5yRU0+NhKhJXGQca3ZWhKSqHnK4zwZ0LeFJM0HSG2wKjsT+JlebuGj/xrBxX42mI15FmOFS6U9hI/9YjAfuZUJX89XOKIJVdvplgdLEJFbJXCkMRRjJxOUC6q2YSju18mgOIJuDhk+XdKQ5JroLxYJXpJkqvVAY9nkKTYrAV4mBDlG3Z1y5zAco3ljvYmIlPNM8LWYbl3UADQD1x+WfBtzGk83EmjsMQXyoVnnemUyvo6gYx4cekRc04j4eiUk6RYu5+ZroFUjrEdSQq47B1C7BbPWSho+D5BdJXgt+5oftnDh0y55wDwEk3yO41gQKXfCb816ZGmEGqGXUG1n70VfEwgOpkgQrYErxGOsekZN5duq5PTHiLOgMWI/mBcLO18VJAudJ81qQGXHmouW22JNMdR4mmFBJWcFwXJR17S8SaXXm7DFoHnM0ekKLbnaICwIorE2BCKcFGQ5S7Y+bbnheRJrCzmXpL7qGzl5Jt6I3ntrLLs1vdZS4EYqV5SBjrAyBRlbA12zB5NtLXieUbauYdkolc0FkRlnksylwiqXi4jHpE2PtOD64eLiDDk6yKPjNn/Ftu/Vs1ddEEiCM0mMMTgSwzvzqTHNlkTdENjA/JJrExGzuMRHGUppklBtqXIW12dYFZG1GBcJYevahOvHdGy3deZjpzuq0lryuL6KWQQAfZ4SteHx+LHy2TbdfF9X3aACFiSqqigYJvaJ73DwNihZaS/DJ96DFiAInZ45ZVYYNEZNfuO9dGyGLGfaCkdpniiaJQSdnl2/0g9Oz65fOypEFl8Way8XqobM654ObGdcqBZUjvaa8BppX05V2h7l7wlPeIRhL6TnoKPufq8KuGSnRxxlesx5C2tb53e2DaEfPaOloOuJveSZMyW2Cyq5P/935HpsqKHT80/IaIEGQyeZBqM14YuMU6aGsfrA2ZqqPCYwxROs4I8AQ0HWlLMJRPoZCPlmS0WQ2vjdn8mxNr1aWNiWTNNVtjW1nnKsYiIVZX5H9emJoKYI6IpOUE194QGpKI1d1UaL4giqjk6ovvoIgwxpkbAeadUkTV1SYVW+Vu+LAUqlfdR0trtftQxSLjtz71AxnUqmS830sOxVNX3KZufGhlVOt9LZXbIB1TNE+ezbuhYVlEsiFnhNip6yBypfJBHIf96xmS1p2BmCGBcpTpKt3iRYTylGS8FvNFVneelv9QZYkXIEyQ2/QXmmbcgbsnRbYHCLa1p661k6jbDQBmleIEVSCTDCfXkN0aXOLelJDja4bxC5VYTFJN5vFfjCLNZrIqTnuy0FF1BoMdFNvytIvnrJNlupN1yWZQCLxX1XYP5eFUs/nhT/zMUINMMXnI+acqifUFs/pZTdFRZNeRSWDKtoc1e9dKaJj4JT05nj0RT72uON4BVaA4d2Jzwu53sjHIiDZ0RgON6wx7FBNKs8SeoLzaSQ3udJUvG01nGhR5RFSR4T6Tr6cRjq/WqEYeK7Z60wENT9qocWUMVyL5Lu9fzL5w9uEc8Ev6baHANXX0IU0b/O0A1VGySjDUnJDG24VDOw2MDfCfbAl88fCnp8+TOJlHOYCQIuM8oQVxsiUCbIit4SOUMyjzYIS3SpCc5zkcz/9VKb4gUhqwrm6K+EZMadoEQeqVyAfSypVMY/Rxi5JgJtea5nv9egon+GOmM0lMpsDA/k1i76wX7v+sYaPmVjj0iCpaLRPOJH/j7jlCGpDacISyIRhjakeIsEWRGBFEeYwSaOxU+5gC0WiqkgkUq2pnt4rhD2RxFPMbUWrqYOjk1NfQbAvA3hDbhW19wdVF86IVy2nrF2D6j3EPNSHVExUZgmEuGlBkpwtPGPrcdYbp6Xfsjk6tFBZ43YmgZDSX9tugS65iy0X3+lR/1yq4hEj4qIAPBs4zgmsfG822N/72Bb/7vUWC6dIv4X9DahWBr/u6JLc6hqBFTpG+MJr5x+G7hYf2+faAE2jsq/sSFWS4JVGWP1Z/NXV1xVxNOUM2TPt6HP8TWmCZwpUoZwklg/ukZSCbyqQIdDhmHn6f4E0wiRJCx2cQQJX7sAIwmnDMVb8JknZ0mUC7MwgRS5sO4AmphZwswJuoncoNKcPWiaVOk/GVc+MTOx3OQp37/gyMVHFThmoKhgtsFMK5VnJfyjiWveFFpNZ3Wd+DpscMCjcsEIHPIEzYLK6RIA92QncsaKfVcFjaIp+ZWzAWjcm3eJpmqzdICprakwnIeGTxyVB1VHlVnnHfEFo45Wes+sKu8V5u/bfJ1LhV68Vhv04tnz1zP0/MWbl9+++fbl/OXLF8Oka87OigM+Mw31BBEk4iKuhS5VG6V6T3XfiiVVAostvGukZRd9Pd4zIkxHgaWgFzGBmcRRxX2k5dRYXwq15uRoLAr7yPyxGHFuU+gq2BoUc2pZrFL180QhCiukuS61HZbpj5wGtGe1evziOKb6XZwgylZcz2x7KGv4yHnPeleNlkShiMkOWCU0S2feYBB0eQ+3SQ11/2jSG0TlmSzabVdgqNthYtcot5jZReqt/TNAxSybtlNWANNfQcGs/eP8th4N/C/o2KxqevzK0EILJmtN8battE0lXTu4rmrMTjLFuw5nwvPYHbkX46/CJNKvzK0dJnqYpETheeCLKjHKpMIsIvNaWE4nPffRwn7UQnKAQENEG7I1v6c42lBGmsEBnVTtV4viqypRa9+YsKwBPedRDn/a6Cqt4UYJ134Tlq3xMA8nZt+3Q+yER1ewb+saYy6auR90DOTmjS+apAaMhAax5jAo+aRa++1CFL50ygdEVCqfYgLCXAEpxljhsDr6aH81Du2o8qm0mwJrAOE4XsALC0ey7IFWG7pt9npmBYl6bIfKIVQF4RydcSmpXjbBIpYQu0OiFzO0jsgMcYFiuqYKJzwimDWC/ls1QUdksnkRnZ44SFqPIjer+zn028UFD39XMYxLQ014clYv5imJaZ52c/9oSJggpFHM25RQgSCXTwiW6snzqMeM8wghsMdpaWtTaeBQWRrZHUPO10EeFPvLk9vhQ89+orF8z/k6IWamtXOvKLnWAJ613Vx1tc9OdKMGypl+4v4OELc6UiptLkQ8SUgZ7Gx+03NWbrhQC2N/lmGjmEUbLhy/J8Usb8lQKmChUV6TgIZGu55s0V9y4iWw0DhkU1aV514c/XEB5IoTcgNAb2OWOU0U8s/uOxeUHZEcFzzNcW47L4jWlg1ulZ0M6t7N9GA5BUkYPsWg1YO5HLI/mL8CRE71VsQbqDYHpap6yrGpn/eOTMt73Ljcv0+cy7XZGxONdKMgAoMci2hDFQGH9P5tqJBDj8h8PUe3f3q9eP1qhrBIZyjLohlKaSYfN6FwOc8SrFZcpPsh+XSOHCGLISJMcTlD+TJnKp+hG8piftMConlGtBsGSyfIY4VTmmz3ZmHI2EYKEm+wmqGYLClmM7QShCxl3NXaPaKxPlAJIU6nZ0+8QKo6gxRH+zXSsdlgEd9gQUpmM5TLHKI1Pr499jE4PXKVL4lgRBFvn/1X/1mAbfl7YQZXbdqSKPJ1SfeyWH7Uq4AqoNG4QwUeT7A8eBLIeGx0W5BVvq9q8jid8Rh9OT0JH8XLDEfTNaqk2GTGYzKtBDXFFhEOXVyHMTLUUIqzJifMGFfgfZ+MnUcyzHNKg8XjG1Vsly62E5hsQb6VfTTOcLQhL0r1cvTWPDlqceWZX9FHd7hVVRvWqx5SCyUnNMah6xg6F7F52qZAcBSV2UlhPj0iK7zUnrtSa02H44eLi7MTywei47rDVP0Aw5QrsqgsTl3d2oMTsCaUMOUdIs+DnKVM9K5Q8Ygn0zE/P/+AHNWmoVDnH9FsQ8S03A3N2h4A1UMsG+Gje/F1UZfGTwExFXCws8SSRgjnamNyqMzxoT17DIKrpL8MQVbs479/dzEetEsYghwdlzoTFJqYcJA0OH/5/CHMdqNUtmjarRPwB76dA9SlLDUjf1vOYcZwLvKhqmczPv8lj7cLSZiaQ5jCUATu3DL00QB0LE+XRGjL1ARHuFwhIq4hVriSxhUW24oIMeWs9oRmSIcZ+9HRVa6107gBLI/9fM6cPWmNbUafWLJFtlwComWUY4Ok+eydiTCSRG8oUZbka8psuIIXmsEFPGhXE40w8WqD6yvb2Bbb5pZB5zbYaKrWli3FLA40M7xmoq5o7KoAwuNsgBhQKP29Hv/cBqoe8FjFFJirIwClfYHQraBqAY+TguqLiG4DVQ+MroLau/eyvtDoNlwBs2AIrPa46JHAWUusdBteXtfwQ9DugKUZxtqOaHHv02AcuvueD6PQ7TgA77ZLm+k4VVyB9VX/oywmt9USHCMxf3L1ibyF1wT8LcmKC7NQ6SYst7Y60hP95hPzpllvwgvomvCWPdc+a+f3hJ+eQSiRtsH0GFhjtSGCxHorQGLEmY08trs+F8TbaHhgnTXEBy2pDXq7LLEdOZS+vCYdlF5mZTusjvTKyYA1Ey7b8ASzLn0c4dzLUSJKWnIx2zC1JWROJh6zg/PSNNuQhHM1J8URlRmcPfK42yHTSOyso/BDF9EuXqj31vnkMi6N98nQHeV18qsNDZHAgA1aUUEJaLv53IhrRJUAKNq2gdkZRjOX3nBpxgtbubW5YepxnWiP3aSZwus1ibsFktGw52c3P4M9kUGnJ2FualJuagNVidqYVdIeqvx27mtbFzATPM4jL8WgImfn0c5jqmLfoQ0PWvzZxo8NXl5nYRgCxSwb7uB2jNEY/3Z9pte4ow5nt6nDWxXxHjrmA2X5reEPxbjQj1xB3ojLJxEExTzKU8L0vNLGDlqSCOc1m09tyNa8vGU4pRGsZNdYbLXtZsiXmSjDvecRF/GiFsk8cPh0MfWM3yRe4LwxVXrovzcKmbJ6QS+wvJPYMj89KWtWFVs+qIaIFG8QBRpANQyVkZupoTJyU0Cde1I7PanU3AqBFTgiaJVDwISjzMtW6kfWsqXCFhlTWxRtsLbj0aOEXjXX6SWxRQcE5+pxe4fJsZ7P3v6SRMKebvoemxar7rAS6xydqlpHIUVJJRfR/IN2KF7rsOXWJxZsgiS/5IQ1XHH7LCX+xHTkrV+6xfMbRTusyGZPGcF+wmxCsJQ8omAfQPaBV/kwxLa5XA8xUE4aBS6DtO+SOFUk3etoAAhAAiHrEpB+bTwb/ZUr0sxiGmFFpI0JhZ94XpQgUlzhpI6ruQ2AEpf2LSrRr0TwJ7Af/zeErT+Br9AzlBLMpM0fNDmnQiog2jLuno1vnaGJxRpWTKcSbSJdhJOk9TBqPC9BZJ4or6qu44EeydycVXOBVpgmuSAt6vRhHSWXxvCZa8tD2/WXDZIdBxMHh8l9bcEriKBMcRuYe/FMsEqS/7pxwosO7qRd3En37D6xOzfiz19vA1d53rKPq7xTRieF9ml1Nmj4dq01fDoQdlchcOQHz+u3j7w3izOlo+t//PgX+V8vjxrburq8i3WXxeS2m/OpfgVeD/Nc2dLCTxSR6gncdDCWP20NR7PcaRzmjT99vz65WX75vDr++7d/fHse/bI8Xt8MZy83WMSd7Isi4/BqGMWz4Qxhkdp9093pqcPbxul6tTEwofVb1RswXDq8O72Bi0YElDuBXG+oUsIFotliRRNFxFGNSykJ/VX91/YJX8mf7d2aA3yXYGX34husEI+iXEBKPmacbVOey4UJr1vEhFESz2phVQttxsDj2lvmz7XATOm/I86YubEj+Mx9pnCaaXNkURSJETlbYI+Q/dt80C68Kv/xYjTd1y/Hf4DnxStr0+h49Kj5i6sF+Pnd+QV6e3bqPn7sj5LiO1N7PCL0urTQytf01p2R5PEM1rBkATHCj4xPLtJmuv6bSplb96tj1S67ks7OcqtWpm8fgp7fuHaRTFNo7YCff/di/vz1n+bP569ehCHXbOliuycoi2jWOGNtAi3eRI/0BlZ//thMGTMBatOiHeuimFjjhVsrFNGG1bfDzCcGqR5H5JZEeacwoySXiog3KWdUcfE0xbTRnH6ouaC9OGH0ExaDWYW+fD5tBfV0cZvh6OqpJFEuqNo+XXjiHu7eLg0rGFuDFaQbiyOkeJwQLM4jwZPElkgfL0PLdrHk8bYXq36pUWGLrhBherPVgVR/GMZWOXEpI8DMBVrBqtq7Lr3FrreZ3TPCh/79cXGbUDVAPcTSZ5ttcCNUYufNtvXk20utIqS4BgYsxu5s72675lvA3x+7rEetKYJAve63hZcWkkSt0FYJxzvuk45rSAqG4DIUpqSVcd78BV9jdE2FynHiJ2iGgctI5MuF3KZLniyUnhNw/cNdtQOdYahmRVPIHbd3QKAoIRhK4OQZMlgQYAl4z2rAIe71HoAPwA1QenHfEHy1EGQlF9YpCvjvEPmFxiwzCEEqOAIME8FMWESk16iuMEmBk4QkC0FkhNl9ofbknWJxBRcM0Wtik6rAGZsQhLMs8XIapOJZ1nSa+cf9WMpFzhJur7+7h5YYbjBeGByAAIiB0o+y3L+ZpYkxpJQHYjyzh/PHZ1/MGLfjhYgVF6m5hNIpoADEdpWN6lHiYSGjXkEPbIj+V2sEz5WksdmMXBHBSBJqgKdYtvIBUFJWB4k6UQqCk/uAeQFnGvZmoDpoxcvir8b9W6xSsG2BW13hHI8yKjdhl/7P1+lC5KxlCrY3ZEgUCHX15f/y948WjSkfb2fbDGGJsCGvR7kxubsO90xgiVzAWc9Ca5k25bEz8u+xWOJ1RZqWqz1h0lxtN4SURjGQtQqE1cVhnlrEGoLi/Ep3sQFlcXbi8soFViHsFHrz/TEE2Zild93CckPwZKdGPxCcIZwUN4JgFrt+ob+OtmX1N4urZatSp0yRdSCjZdjSA7B044sas1c04ZBK1b7Q6JXpziB9kRCWg7MOMH7sxJqEM+126LhPSexC7iAePoryDLNo+9vvQeg8voLQD68Fv4HubJVpf+9uec7WU/bvf2qCv/Me3tbb8Bvo4w65htGVwTjiusK06p45N0mc7m715gFHfQx0XbCUZpzVw3er7D7ADdT2vapnp/T68DmZR/N0/pEofIIVPoYLMuGAyF6ZWv2ybeEKem7qiMzSFSLYHP1dfhoYNF1z5ch04ffH7e6usKsrNAvDs6XQ2ay5QaliqXPqQtERuVVYEzfNQLc7YFi075qIDcHxQpJfOkV+Xg0Va5X8y1evvvvuuxdB8beiKE3DhXMEzbtjqI6qG+rvj2fFTZzWWGtF+Pz1s3pkUZvJWEhpqec+HgcQFCGYtVrI7i7V0gi+wdISJvEI9H8ahL7QWQm/qcYs17rV/O5CEmFz8a5+9t8AcfT1xbPnf3ry7PWTF99dPH/25tnrN89fzb57+fKnr6c/vv+EfvpqDqkNibkFMf8lJ2L7E/p6vfj7XzY///0n9DUlStAIjsJfz1/Onz3RdOfPXs9fvP7p67OfwBr/+mr+bSp/msEfCyOkr6/gb71n2VAlvz7/7tXLb/WjbUbk159mph4h/AcgwAnf1799eff5PxcXP7z7cfH+3cXxDwUNOKiWX5/r9+Fiza///c8jQPvPozf//c+jFKtos8BJYv5cci7VP4/ePJ8/+5//+Z+fZvuoeoioF916fm1rX7Rp+aCwV0RVe69fu2sBdyCBKUdVsUWyxyOwVQZhteF7+exZKkNQaskeBQ7di11A9O9tzMY1GcZJB6tzhRWF2TCGX0u7vLHYxdLE0+i32njWB/LINpv7eqHLunAk/Ka7X0dMkhFSIrdK4IUB2QHvnX7NXT/uxTpO0E+eoumbDjAXOnV3eVv1i5GT0Wm3LgxmR0zVpEyNOuxlq/uektiE+bQBeDEOgOC5ojUrocr7s3mjrZvls+c//NeLv/356rufb16t1Rq/V2zc9KAd102expNonR4NcNEx9WMedfFyxVBxJvjt1gvos09aQvnsr40gPuO0LdxOBVU0Pn6vYZo07wNu0DgpX/Gn+B7Lbe2G3hq/lgt4/fquPluwZ0MjKOsYQWetDBoSsudb9XjeCr1a5WgoxdYk1B6ud9bIamhIt9rM1vzSajO94HNz8ZWXLRpzl0/YDNEY26E9sg6nq9p8B0YVLfJVL47PvFA1bd/Y4R68urZ7HGlamTeWOtiWLOe9I8wxXwnOFGHx4IHhPkCPuEAJXB5HxGOLp4g5g9tqzBgIgGugWOLoagwI+34Qg94LSWJLMiuOUsy8Ytden5TVskLXlcEPgwHpbY4rvaW4F5TmsTTAghdqmrXyBlNVHHlXtoTVEVHuBmvWgt3EWjru+qtrLCjPpV5jczJ4SpaRlprcZJhcOl61K4hUeJlQ6V0ix3DS9JJ1IQZP20IQ3KqfLmpJSKZuGsRFplTZ4VKZY/bKJ72rpRIR89Z8ICAQGQj9bnpyFA43w6zcH6IfZ8hckQppoXqzPrwJdjYOEGbZu3Y9cBlpN0QQTyXZsjQQfm1va/Cq5wGjoeCcaO8eneX0B4nWCV8as3kETjpCwxqtaq/eMhdcVjV8r06Hog2LZn2GCsvKpVquJMByi354ewZGZP2er2Zba/uu5tCpb/6Cn1X7akMKAHZT6KTiub8anOoJeKOjEUcn3Rk9NQ9XJ5oy0a6eZNflcu9Mrht8mv1jf+rcwMSwwSy7U7960r66U74qfD4T2ysSYf2Fiawo8piH5Hz1J+ntJOjK7S81IbfkJg6Xbrj4z7DMtcFcXN/VWtRcE4lI7YZpIVU1Irw2KJi5edAuDybHXptycP8NqT6Hy3MDurBUlK0WVDH53SIPwxp2G97XEJ1/XSwIgeTxoZueao7AdWfOSn3xijiDpB+mKth4BVRTOlpqRsXXj2vDe+DmLmU6kMU2ZkKUdnmeAOQGszgpr3xw250JsTZM612hSkWTxA1LXrGiJoRr7cVOReYjdTap/Q6R24wISljkhEpliQpgiq0NFLdf13eIrXjrUNPQRaBd5ob+wCSKVAamNv2Kyo+PLo7PEBdQXflxg+VGqVYT4ywh2oDCcew/H6owUNPcqZQ6gBrT7c4Lm9kgSIK97VWlrnbAUzHuiF+r71yGVo0KFGBq3jUrRHFZcmXTN6Cjw+sjzlQuiN5g8Ss6ssjRJ/gFJ+hIE/s/UOjiCBGwRmxlDePlwhXf1wbb65QNT7coOMnOByLeEBwTMbJqRXErjvm4oFYHgeKcOAkbs6e0po/sR+XLhtoR9BNJ7YG8PyvC3VOZXcGB2szeGj5Om9/uMkzvdYBYBbzx7wTHbpiApUmVdE174HFiEuWGDRPz7sSjxBsn+MalES8S2gjXqdlrNrrbHyVIf+X7OUxpRbXh8ax4R5v1/qUGrkJ9P+gO6ODkMavwojuaxJw1eqIXJMUURkhhW1p39cy5maVXxCfoHHJR8Euibohd9U0BneVWkVqWYTU9GQIQnQvVvV1ohNJpGpJOv14GuYAHUw97nqtFjBXuE9FYL1jp+ZV66cZolSdJdZ2bwUUBYNTrLzWK/ds0YTOqmE0/FbUF7YLzqNKEJY+3jxFeKSLq/e138JhWFi2MWu0ZbQhBXCT4RnbY+NROxMIO99Yws6ECDk0IHEUkU9UBHyW8YgO1+N9/EyjtgTCNKFtj7zz4FB60HAebH7tLuhQUw/04qpZLTJb5XnU1226Qsg0B+qNq+K5wBNcC7+rTCNyeZDKFodoaVmXoLtyGaGBaV2pvaV9XDXg6cKHrrY9AakczdMS4ohHR//PjbGbo6AYLRtn6CAVq/h9Fgioa4eTooYsAFxwx3SOZvXeQafKHMfa/fIxBUl4+zYlCeJhZDoeR9r9spLmFnEp/FT89H15k+/T0vMhOgaETXNZp+xWyLaj9otYNHujeb47UEHa4K9IeV095V+RFucvouy/ycDNhhS2EFdtqGHfDHzjYXTxU0MGs5cq9RqhXRxbPCAAQH9aVmv2bvknzDm5WvSj3rH2z5cFuQXzoWysl1IjBKh98YeVQ5jJfeo72MPcbyl6+mJ7/P8xF86iXv3PzhTbV00zK0Ia7pSeoIncwOzVZMzv1Xp4yqXBfffZw1OMEWJgXZWCXMTh5c2GSbp23Pu0bLMsrYFrqFjzghbNBF/6+6gpc12WYr/HVS1MYtHCmdS8vGy7V9H2nqVqfO/DpxvA7vQwXYBcuy98SdKNN2pEfbtPdpzJC6Dbd/HCbrjrcpnu4TbcX1uE2XQ/R4Tbdw2268O9wm+7hNt2Rg/Jwm25QRIfbdA+36XZ45sdfp/vQrkbgPrET2DLv9QE/7KGE5T5x2y3z3rY/pLPocBxTYfvQbm9BsORskW1EWwX/fZ3+mj4y9FtPpPK7cPjCaaVX6zvjPOlIuTrYggdb8GALHmzBCbG0XQ14hVdXfsToX/XfLdEm8Ft5DX0osMSRQ/uHi+55CbsBm/A1RP4PtkMVTYlUOB2pZF3hdvi0jM527FsSlsk1qa/0ZQ2of7z9/GO9QOSwiCJD+KGD5VBFLYZK3e61rB4XwWheHRB7tbmWfwuQBDduMtu18XBnDRAcBQFudZ9qcUfoAi6Jp6xjvA1YTQNiQdMonpqUzJ32XXJCvaMV9fn5BsBC6KMtbZHhsoQToGuHs8qT0T7HQVjgVus8SZx46r3plDVdYuZra/OgRV2bH7vj+wuK6HersCe9mOGvRmb9lzPUSxPsyffY5m8DWT0aDZDWfSsOsjaXC9V+Mg8XwQqCCV9LhaV/J7B71DKo3M/dw8qjiyYfWBboBw9oVQwjBp0f1aqnnCM6ync17ZractKvJ0aIUZcxseeutTAlnHq0/Gcut1mYXT2k5X7g61c/m9fbol/diJkQoqGJuLBLzE1xhWvt5t6ui3Em6rhwNUSRM2byTTUrD6CWbg+8hK8X0I7hs70H4xUx90qYMyuIll+bMmYF9kDScaH0GnXGR0+4JonDzDrMrHufWe2zajy6z/gGxXmaFefY7oy4yaSINgHP2MSOxkqRWGDQxVs1b8PeZ8TY23VL3m/QKctyJWfoPdyNLmfoU670Ez2mjnlMorartji/WlAWqs29uyP6HZSxh2pRcL+aTbdyLsohwcAOF8OsEeVyZ7CAWRcq250ZFrglWHr8iD43t4KaRaLSqyjibEXX9naMfkCL4CK13/r15N+ryCqQTL6Drc5Uj7cY9B9rGqecrXm89Cxj+2R4KtZH/cHJn/vTsUpeaExKVtV89bj15mTtuYgHDn7bEIRQ9GQF9g1O+025gIYW78KPdlp53Kbiuh1VPYje5wzqAeAERViRNRf0V3vpVA+4408fP7798WQkRNaY0QMMH3KreuFQRhVmsakwOgpUiOwQI8P6YDrdV54Wc3NzK39JvJn5cXv+tw/D56VmBZ9UZ6bccKEWRpu8QUrkbbtbxx7tmj/ZAgB1zNjpQzWqQMZHbNynp9yYeAsaNijHL7tvIZjftPzb+R/nL6zh7crpGIuSxnP0ngv7ng0lkCgTlENFGe/LBgeQHMzVMobdVl+kLcf+PccBNm+5o6HdW42HPg+YcBPZM5Y1h1FDOZAwMKChhhkEgkJ5rwiu3TO58JB42p4KNJ4ZpPpAO8t9Tgdr1wtt0aaN8IIhQQzlRQvTATE5wFohzKe+R7ksrlOi0Tb8bK+7lBMeXd0JXpzy3GaZVTHfYKpF6vYGGoDWPktShlXMNYUGVWMlU7lXewW/kZA1NpHqrSZWaeplITxrtndMHkCjlSJlZKrFIIBIRpiNAIRXK7jU4u4ApTymKzoIUdu6vA+anNFbb9VW+IqwUutenr+7KH+97AJnroIYM5z2zOFzd9SW00kQmSctBcubt6UNY1JcotaibaccGV4NXdAIYKqcnhT6oQOHjDYkDR8d7R5lCjS9xaAUBiQL2/sDW2weW7d4EViBJzhN82od2OTBmfEPKI5iYiqNE1dGJBP0miZkTeQcHWOGYrpaEVGOcqNNtZQ1oZbFAUu1IEKw+vWuezTmA5YKlSa6JKRlKb2iSdKig3aMsPCrtUPsJF1V1iVpefbUKTVrfISjDVlsaHjmLzlPCK7HqfUg/MeGqA3xhj0CJoBsQ1vmuEqzhdKL5vQ4MFIkzbjA2tKAcEeNxI04QSRPrkmv/nb4FpwtYiqv7lJejJBYo6vChlrsmnUPwh29oKgBrKwQ3kDiLEqj3qgM6Ggfl0a9F7hdsFlp1TD2da9emqZPZW/gP3cr4DDJhlGDj6ItQ2CvsegoI54pmjrHmZs33WjuboZ0ozJlO9RuswfcB1RtG7cSTQQdFxxMOHuJWne0a1iLYPMkWWjj9y5gmQAnUIuaBeCyEiyq9fYYUoDvZ07vDp8m3o0MPWLcZJISaW6HKoSrP5aP2xwtYk0WGZbyDjQTEEeGeGFxDbEIE75e6KYtBFbkjs4EnTsGaR4ooSlVMz179BhYEnRpb3u4dNZF+VqDJJUmjYLEKCPC3RMx04bwJbQSiFBl35Lw1uDmh3ju0f7zULtxeXb1/NkzlBIM3kGs3G1iGG1yFgsS25t3m65FXjTcFD1cEr2Tr9/eUfnsXyDPSr55+vTm5maeERFxhucRT5/GPHpq/35icraefjv/49OY4jXjkMvxFAREbpW5Qmej0iS8yWGsPMOqim+frJWVdwEAvYZS9KeM8ZM/I8LWzUrwfZGuStw23choonh/gZnEZmt2etIKgfKFWPCsPd5295T/UiNkeA1We+zS6jmT7YGtAClkWvSC6rJLBoL+MxTXAaxxDgfPO4C/wVQFPHK9+Afg+wGmMVv7t+IDOJwkbpmIscJmqygVF404eFRJ94gW4ES8D8hBL6Lm3iFPkwT3IOgUR4S5qvV2mhsjBptYqCUplzfOgvV2kDtNbFzBWG2mHmRSm4+KskYYwhTNfJtlgt/SFIzsyDl3ga31OdgWmwb5S7U959QK7tY75/xR/z3unBM+2fGc07FH+5xzBgCge68WWwLZoWZskQ+5SGjj6MbAw0LgkX7Dt8x8Ze7U0By8AxYi5+hUgbkD932iJYlwLolWQSZ3IjXXupr7TMgMLYmkMZHenRANjiX5WYWV6St3DUxCrwi6/L9P3nNxg0VMYv2/yzk6JwThRJqLYC4LmVyGkkTvMKn/uJHQb5In4IaLLF8mNGocVFURQy9eGuHP0ekKMV5+2OBXSgkLdwGOsqfFgTNei0PQa6yaJ2YhIE2OACwoz990sdhDNn2F7UMWNnjoTP7faaXJBys4fCgUOXWhyC+HQpGHQpGdoA6FIuHfoVCkh+hQKPJQKBL+HQpFHooDHYoDHYoD/W8tDlRHcSeFIkun3Pjkg4lzct8ZAJBQ9IjM13MDaYbchWAth7rZZJF9Z0VyAGGKrigR6NHZ6UkLXzVhRKFNdXBs2wr4FJeeTsb6uAxk7GM/fZaCGXKOrvW3c+mCi5zH/ZN50uJzt75ucptxocrg3EtL57K7VlbJDe1fI8NEte43RcGpvAq3ydBHKVFCL+Fq6ESd3lvpL7o2qH+DVXkpjfHNQu51i7clCix6e4B6zwWiLBJw4bnea2OFZyjF4gqy5ouIu/ICHRzHjUBNZC6TSfk1icH5b8MjOIPWHsE3RzN0ZN85gqiHI8lwJjdctdxYuOFSLcrZNW1PeLrK6XNIU6ncH2RHuTWBqXRp+80l70dteibJtiDUXBkLJxKjt5CEMZEq+lKNb7ejC8aQny2CJGWRLYKQ8WgzR19c6E/E0yxX7tTt8j+8cPiIJ3nadl8RTgiLsQg2Jt899MQkcAtiDfEiG9VYqkli9a7mCikhxuy38912WXEMmXGp1oJUcy7PzMPRiZfldzueSlbQoN3zpatA7jplun4s2iYG9+83k3lJU/Irb4TZDGT1q9VeBdv7Se8sjakWY0aQKc0YQdo4BRzMZUYnjlPKRuVzugofDbKFbxkrvGxWTy55pltTwGA0yyDlYZmr799evP0wdd5qHCpB0ZWBV+J5+Wz+bBScE1dbgq8Q7gonDKUPlXzP3314d3yB/hW9//zpI/Sh/LdROP5mbzPFCkyNh0rotauCIHHlluLP+u+WtQB+6y4Z58ihBy9EaMAWWnmgUp5uK3jh5YqfnrhV26Ayh5ltqYhT14DSFKv83V2VJkWqNE8vUywVEZczdCkTfE30f6INTeJL9EhbAJ9P3j99++k9utH7abZG8NvjWcgGvtQGC2UkuRyeJj9VOa5Gs6BCmm7MNRFLLqFd5mrxSxN1bK8Tb8F6J5OxQXXCzHoXs2zCXYTe7ZFrbeJqa8EMgWuKEUaMqBsurjzHwFDrJUonzFEzCZFpilnck2noFoz5ZLfahuJC/Vg+hwuKS0Wiu4zTpNqj1Bodi9UVmfAyfs31imyrWz8ngP40UCymLOIK2fRinetFUqIbqjYtoCJsshftimZOk7wl7RweDN/fGAI77msK7mifcMsQBNQVb5mrzZT7mg+U5bdAtayCdO9VZbANJy9QaTzdFcpbLugdWJkDfFI7cM0EXwuc7m4f7Mx4Un1zViocBwx8ctKVZ+8HNP1KOai21H4VYMBtVBY/KR2PJt5LIsV7UqOlrMeS7HyUa2eizEhEVzTSq9H5+Q+63ZQZVI2Y//A5anHoE6iROeA4SQumxrhuVh29jSKSKePPfI9pUrgzT9k1Tmh8NPfeCfAwaVMYyRzCuVd5YtjNSwp+alURk2LD1VzFwOJYO8DChhYU+Or0yiZipUiaKbTBEq3g5bqcO0NkR4i0Fo5ro17rws2wlHrRPAKJmtDmK7I9akPViCZwgzDwwyCo5aVrtTpBVXnpFTjFzcPgwmITPMtI3Awfnxiflmxpxtou1uYvzwgzqb5pSmKKFUm2DlUb6MA1ap0BOmMAw2Vqe4lU0jXDKhfNAT8IR/F54Uq2wEz4/BXZtjEOBa106boBgEaHrlzaKa1n0bwlc8H8mzqGJRzF0h7HMiKSpf/8f1AEwKh4lmExEneHjKrGOEODQ0juDJZh2ymt/vifydD1RwENigMaEgk0Ql5Do4HGxL9MJrLWKBgfj8zjcG2faSw2Y6cVpTlcQIHmeum2riOtuFrojvlXeKXBLPrx0wWccuYxJ6IZlztobagEVGhqEZa2IFQe82Lb3W0gKVX3SQzkfnHxn34JKp8jbXM+eIv2zY5GmS1fhWIqSKS42O4BIpiMUPST4HxHW1xhsSbKblO45wmpA5Q3VEWbwNF8qb/g3R1FVfPSgR9RQ+jZIWncOA7vVu90zlnGO0674OozSFBlNp4p7ACBH62DJlDLYKC12cX+9KTVkJucIXRiB8dNKC1hAF39HVrxJPbCUxi5CVRv87T7hgRu+BrALCYrnCfKEOhgFxziIIEHGeOO870Pct9w0lICIHcw5loBlB6rAHvPJXtXlYoNac9d+8AeUovn3n2kQ/jekZd0EOvG0JvCHTqE8z06RO3xhxKYrOiVd/5xYZ6MC/CyH/XfelHyQ/uceAT5oQcpMeGg7FNkItjhE5VKCHLujKQZfx7gB8uA69/IAoJff4dVDQDcXQTQnpp85c/vj9HzV89f2mBata261lpUw6HSwqHSwqHSQovQDpUW2KHSwm+20sIyp8ld1R/cEEN+VJGFQ+WHQ+WHQ+WHQ+WHQ+UHdKj80HF8fqj8YP8dKj8cKj/8f1/5oYoEtuELGMUTbnK9O64MBxlkvxKcKcLidh/Rbv5Qfw47HqB0wjttHF1pEG1Ojh4MQQS5KC6At+Tt+bFzfFDwLZo6rN/8vwAAAP//BwgeZQ==" } diff --git a/filebeat/module/mysql/slowlog/_meta/fields.yml b/filebeat/module/mysql/slowlog/_meta/fields.yml index 442da6c8b11..67efb18cc3d 100644 --- a/filebeat/module/mysql/slowlog/_meta/fields.yml +++ b/filebeat/module/mysql/slowlog/_meta/fields.yml @@ -37,6 +37,11 @@ type: long description: > The unix timestamp taken from the `SET timestamp` query. + - name: bytes_sent + type: long + format: bytes + description: > + The size of the query result. - name: query description: > The slow query. @@ -52,6 +57,14 @@ type: keyword description: > Current authenticated user, used to determine access privileges. Can differ from the value for user. + - name: last_errno + type: keyword + description: > + Last SQL error seen. + - name: killed + type: keyword + description: > + Code of the reason if the query was killed. - name: query_cache_hit type: boolean @@ -65,6 +78,19 @@ type: boolean description: > Whether the query needed temporary tables on disk. + - name: tmp_tables + type: long + description: > + Number of temporary tables created for this query + - name: tmp_disk_tables + type: long + description: > + Number of temporary tables created on disk for this query. + - name: tmp_table_sizes + type: long + format: bytes + description: + Size of temporary tables created for this query. - name: filesort type: boolean description: > @@ -89,3 +115,50 @@ type: long description: > Number of merge passes executed for the query. + - name: log_slow_rate_type + type: keyword + description: > + Type of slow log rate limit, it can be `session` if the rate limit + is applied per session, or `query` if it applies per query. + - name: log_slow_rate_limit + type: keyword + description: > + Slow log rate limit, a value of 100 means that one in a hundred queries + or sessions are being logged. + + # https://www.percona.com/doc/percona-server/5.7/diagnostics/slow_extended.html + - name: innodb + type: group + description: > + Contains fields relative to InnoDB engine + fields: + - name: trx_id + type: keyword + description: > + Transaction ID + - name: io_r_ops + type: long + description: > + Number of page read operations. + - name: io_r_bytes + type: long + format: bytes + description: > + Bytes read during page read operations. + - name: io_r_wait.sec + type: long + description: > + How long it took to read all needed data from storage. + - name: rec_lock_wait.sec + type: long + description: > + How long the query waited for locks. + - name: queue_wait.sec + type: long + description: > + How long the query waited to enter the InnoDB queue and to be executed once + in the queue. + - name: pages_distinct + type: long + description: > + Approximated count of pages accessed to execute the query. diff --git a/filebeat/module/mysql/slowlog/ingest/pipeline.json b/filebeat/module/mysql/slowlog/ingest/pipeline.json index 5bc0e1bddcc..d818d7ddff1 100644 --- a/filebeat/module/mysql/slowlog/ingest/pipeline.json +++ b/filebeat/module/mysql/slowlog/ingest/pipeline.json @@ -4,7 +4,7 @@ "grok": { "field": "message", "patterns":[ - "^# User@Host: %{USER:mysql.slowlog.user}(\\[%{USER:mysql.slowlog.current_user}\\])? @ %{HOSTNAME:mysql.slowlog.host}? \\[%{IP:mysql.slowlog.ip}?\\](\\s*Id:\\s* %{NUMBER:mysql.slowlog.id})?\n(# Thread_id:%{SPACE}%{NUMBER:mysql.slowlog.id}%{METRICSPACE}Schema: %{WORD:mysql.slowlog.schema}?%{METRICSPACE}QC_hit: %{WORD:mysql.slowlog.query_cache_hit}\n)?%{METRICSPACE}Query_time: %{NUMBER:mysql.slowlog.query_time.sec}%{METRICSPACE}Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec}%{METRICSPACE}Rows_sent: %{NUMBER:mysql.slowlog.rows_sent}%{METRICSPACE}Rows_examined: %{NUMBER:mysql.slowlog.rows_examined}%{METRICSPACE}(Rows_affected: %{NUMBER:mysql.slowlog.rows_affected}%{METRICSPACE})?(Full_scan: %{WORD:mysql.slowlog.full_scan}%{METRICSPACE})?(Full_join: %{WORD:mysql.slowlog.full_join}%{METRICSPACE})?(Tmp_table: %{WORD:mysql.slowlog.tmp_table}%{METRICSPACE})?(Tmp_table_on_disk: %{WORD:mysql.slowlog.tmp_table_on_disk}%{METRICSPACE})?(Filesort: %{WORD:mysql.slowlog.filesort}%{METRICSPACE})?(Filesort_on_disk: %{WORD:mysql.slowlog.filesort_on_disk}%{METRICSPACE})?(Merge_passes: %{NUMBER:mysql.slowlog.merge_passes}%{METRICSPACE})?(Priority_queue: %{WORD:mysql.slowlog.priority_queue}%{METRICSPACE})?%{EXPLAIN}?(use %{WORD:mysql.slowlog.schema};\n)?SET timestamp=%{NUMBER:mysql.slowlog.timestamp};\n%{GREEDYMULTILINE:mysql.slowlog.query}" + "^# User@Host: %{USER:mysql.slowlog.user}(\\[%{USER:mysql.slowlog.current_user}\\])? @ %{HOSTNAME:mysql.slowlog.host}? \\[%{IP:mysql.slowlog.ip}?\\]%{METRICSPACE}(Id:%{SPACE}%{NUMBER:mysql.slowlog.id}%{METRICSPACE})?(Thread_id:%{SPACE}%{NUMBER:mysql.slowlog.id}%{METRICSPACE})?(Schema:%{SPACE}%{WORD:mysql.slowlog.schema}?%{METRICSPACE})?(Last_errno: %{NUMBER:mysql.slowlog.last_errno}%{METRICSPACE})?(Killed: %{NUMBER:mysql.slowlog.killed}%{METRICSPACE})?(QC_hit: %{WORD:mysql.slowlog.query_cache_hit}%{METRICSPACE})?(Query_time: %{NUMBER:mysql.slowlog.query_time.sec}%{METRICSPACE})?(Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec}%{METRICSPACE})?(Rows_sent: %{NUMBER:mysql.slowlog.rows_sent}%{METRICSPACE})?(Rows_examined: %{NUMBER:mysql.slowlog.rows_examined}%{METRICSPACE})?(Rows_affected: %{NUMBER:mysql.slowlog.rows_affected}%{METRICSPACE})?(Bytes_sent: %{NUMBER:mysql.slowlog.bytes_sent}%{METRICSPACE})?(Tmp_tables: %{NUMBER:mysql.slowlog.tmp_tables}%{METRICSPACE})?(Tmp_disk_tables: %{NUMBER:mysql.slowlog.tmp_disk_tables}%{METRICSPACE})?(Tmp_table_sizes: %{NUMBER:mysql.slowlog.tmp_table_sizes}%{METRICSPACE})?(InnoDB_trx_id: %{WORD:mysql.slowlog.innodb.trx_id}%{METRICSPACE})?(QC_Hit: %{WORD:mysql.slowlog.query_cache_hit}%{METRICSPACE})?(Full_scan: %{WORD:mysql.slowlog.full_scan}%{METRICSPACE})?(Full_join: %{WORD:mysql.slowlog.full_join}%{METRICSPACE})?(Tmp_table: %{WORD:mysql.slowlog.tmp_table}%{METRICSPACE})?(Tmp_table_on_disk: %{WORD:mysql.slowlog.tmp_table_on_disk}%{METRICSPACE})?(Filesort: %{WORD:mysql.slowlog.filesort}%{METRICSPACE})?(Filesort_on_disk: %{WORD:mysql.slowlog.filesort_on_disk}%{METRICSPACE})?(Merge_passes: %{NUMBER:mysql.slowlog.merge_passes}%{METRICSPACE})?(Priority_queue: %{WORD:mysql.slowlog.priority_queue}%{METRICSPACE})?(No InnoDB statistics available for this query%{METRICSPACE})?(InnoDB_IO_r_ops: %{NUMBER:mysql.slowlog.innodb.io_r_ops}%{METRICSPACE})?(InnoDB_IO_r_bytes: %{NUMBER:mysql.slowlog.innodb.io_r_bytes}%{METRICSPACE})?(InnoDB_IO_r_wait: %{NUMBER:mysql.slowlog.innodb.io_r_wait.sec}%{METRICSPACE})?(InnoDB_rec_lock_wait: %{NUMBER:mysql.slowlog.innodb.rec_lock_wait.sec}%{METRICSPACE})?(InnoDB_queue_wait: %{NUMBER:mysql.slowlog.innodb.queue_wait.sec}%{METRICSPACE})?(InnoDB_pages_distinct: %{NUMBER:mysql.slowlog.innodb.pages_distinct}%{METRICSPACE})?(Log_slow_rate_type: %{WORD:mysql.slowlog.log_slow_rate_type}%{METRICSPACE})?(Log_slow_rate_limit: %{NUMBER:mysql.slowlog.log_slow_rate_limit}%{METRICSPACE})?%{EXPLAIN}?(use %{WORD:mysql.slowlog.schema};\n)?SET timestamp=%{NUMBER:mysql.slowlog.timestamp};\n%{GREEDYMULTILINE:mysql.slowlog.query}" ], "pattern_definitions" : { "GREEDYMULTILINE": "(.|\n)*", @@ -45,13 +45,6 @@ "formats": ["UNIX"], "ignore_failure": true } - }, { - "gsub": { - "field": "mysql.slowlog.query", - "pattern": "\n# Time: [0-9]+ [0-9][0-9]:[0-9][0-9]:[0-9][0-9](\\.[0-9]+)?$", - "replacement": "", - "ignore_failure": true - } }], "on_failure" : [{ "set" : { diff --git a/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log new file mode 100644 index 00000000000..36bdace36c9 --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log @@ -0,0 +1,36 @@ +# Time: 2019-01-21T06:36:03.868128Z +# User@Host: exporter[exporter] @ localhost [] Id: 14367293 +# Schema: Last_errno: 1370 Killed: 0 +# Query_time: 0.050365 Lock_time: 0.010733 Rows_sent: 16 Rows_examined: 3146 Rows_affected: 0 +# Bytes_sent: 1362 Tmp_tables: 376 Tmp_disk_tables: 71 Tmp_table_sizes: 606208 +# QC_Hit: No Full_scan: Yes Full_join: Yes Tmp_table: Yes Tmp_table_on_disk: Yes +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# No InnoDB statistics available for this query +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548052563; +SELECT t.table_schema, t.table_name, column_name, `auto_increment`, + pow(2, case data_type + when 'tinyint' then 7 + when 'smallint' then 15 + when 'mediumint' then 23 + when 'int' then 31 + when 'bigint' then 63 + end+(column_type like '% unsigned'))-1 as max_int + FROM information_schema.tables t + JOIN information_schema.columns c + ON BINARY t.table_schema = c.table_schema AND BINARY t.table_name = c.table_name + WHERE c.extra = 'auto_increment' AND t.auto_increment IS NOT NULL; +# Time: 2019-01-21T09:15:36.487710Z +# User@Host: test[test] @ [192.168.123.123] Id: 14370752 +# Schema: test Last_errno: 3170 Killed: 0 +# Query_time: 153.883481 Lock_time: 0.024022 Rows_sent: 0 Rows_examined: 120309968 Rows_affected: 19198 +# Bytes_sent: 62 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# InnoDB_trx_id: 69BB9C7F9 +# QC_Hit: No Full_scan: No Full_join: No Tmp_table: No Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# InnoDB_IO_r_ops: 9744 InnoDB_IO_r_bytes: 79822848 InnoDB_IO_r_wait: 0.883446 +# InnoDB_rec_lock_wait: 0.003038 InnoDB_queue_wait: 0.000000 +# InnoDB_pages_distinct: 64872 +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548062136; +UPDATE test SET test.state = 'NOT_RELEVANT', modified = now() WHERE test.id IN (26328833, 390, 149386, 152268, 160997, 165304, 168524, 184105, 193022, 194533, 194862, 196469, 196487, 246398, 256594, 260566, 261862, 262342, 263701, 264166, 264607, 267671, 274879, 276704, 280964, 284366, 289323, 289843, 290004, 298999, 301213, 303494, 307920, 311905, 316311, 318404, 330846, 340751, 341433, 357191, 369184, 376876, 378360, 378492, 379470, 382131, 384077, 388368, 396815, 396881, 398272, 398950, 399589, 401299, 408787, 411293, 419109, 425953, 427659, 433183, 437030, 438332, 438386, 447037, 454231, 455257, 455344, 456385, 460420, 460425, 461252, 462338, 462531, 462684, 463104, 463395, 471073, 480069, 480078, 482399, 485205, 487971, 497191, 500261, 501855, 517585, 519310, 519654, 522575, 538425, 543560, 562315, 573934, 583466, 583490, 583502, 597605, 600875, 601546, 603879, 604467, 604619, 757786, 797285, 799155, 802905, 806268, 806798, 811974, 819684, 822629, 826406, 837733, 840128, 840131, 840251, 840277, 840302, 842966, 844294, 844300, 847837, 852503, 854272, 854299, 862983, 881405, 881461, 881467, 881560, 881908, 882435, 882453, 882651, 882711, 882811, 888265, 888286, 914091, 916288, 916316, 917708, 918238, 918887, 919222, 926607, 976977, 977010, 977067, 977131, 977185, 988249, 988276, 988336, 988360, 988504, 990994); diff --git a/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json new file mode 100644 index 00000000000..d32dbdf8d61 --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json @@ -0,0 +1,88 @@ +[ + { + "@timestamp": "2019-01-21T06:36:03.000Z", + "event.dataset": "mysql.slowlog", + "fileset.module": "mysql", + "fileset.name": "slowlog", + "input.type": "log", + "log.flags": [ + "multiline" + ], + "mysql.slowlog.bytes_sent": "1362", + "mysql.slowlog.current_user": "exporter", + "mysql.slowlog.filesort": false, + "mysql.slowlog.filesort_on_disk": false, + "mysql.slowlog.full_join": true, + "mysql.slowlog.full_scan": true, + "mysql.slowlog.host": "localhost", + "mysql.slowlog.id": "14367293", + "mysql.slowlog.killed": "0", + "mysql.slowlog.last_errno": "1370", + "mysql.slowlog.lock_time.sec": "0.010733", + "mysql.slowlog.log_slow_rate_limit": "100", + "mysql.slowlog.log_slow_rate_type": "query", + "mysql.slowlog.merge_passes": "0", + "mysql.slowlog.query": "SELECT t.table_schema, t.table_name, column_name, `auto_increment`,\n pow(2, case data_type\n when 'tinyint' then 7\n when 'smallint' then 15\n when 'mediumint' then 23\n when 'int' then 31\n when 'bigint' then 63\n end+(column_type like '% unsigned'))-1 as max_int\n FROM information_schema.tables t\n JOIN information_schema.columns c\n ON BINARY t.table_schema = c.table_schema AND BINARY t.table_name = c.table_name\n WHERE c.extra = 'auto_increment' AND t.auto_increment IS NOT NULL;", + "mysql.slowlog.query_cache_hit": false, + "mysql.slowlog.query_time.sec": "0.050365", + "mysql.slowlog.rows_affected": "0", + "mysql.slowlog.rows_examined": "3146", + "mysql.slowlog.rows_sent": "16", + "mysql.slowlog.timestamp": "1548052563", + "mysql.slowlog.tmp_disk_tables": "71", + "mysql.slowlog.tmp_table": true, + "mysql.slowlog.tmp_table_on_disk": true, + "mysql.slowlog.tmp_table_sizes": "606208", + "mysql.slowlog.tmp_tables": "376", + "mysql.slowlog.user": "exporter", + "offset": 36, + "prospector.type": "log" + }, + { + "@timestamp": "2019-01-21T09:15:36.000Z", + "event.dataset": "mysql.slowlog", + "fileset.module": "mysql", + "fileset.name": "slowlog", + "input.type": "log", + "log.flags": [ + "multiline" + ], + "mysql.slowlog.bytes_sent": "62", + "mysql.slowlog.current_user": "test", + "mysql.slowlog.filesort": false, + "mysql.slowlog.filesort_on_disk": false, + "mysql.slowlog.full_join": false, + "mysql.slowlog.full_scan": false, + "mysql.slowlog.id": "14370752", + "mysql.slowlog.innodb.io_r_bytes": "79822848", + "mysql.slowlog.innodb.io_r_ops": "9744", + "mysql.slowlog.innodb.io_r_wait.sec": "0.883446", + "mysql.slowlog.innodb.pages_distinct": "64872", + "mysql.slowlog.innodb.queue_wait.sec": "0.000000", + "mysql.slowlog.innodb.rec_lock_wait.sec": "0.003038", + "mysql.slowlog.innodb.trx_id": "69BB9C7F9", + "mysql.slowlog.ip": "192.168.123.123", + "mysql.slowlog.killed": "0", + "mysql.slowlog.last_errno": "3170", + "mysql.slowlog.lock_time.sec": "0.024022", + "mysql.slowlog.log_slow_rate_limit": "100", + "mysql.slowlog.log_slow_rate_type": "query", + "mysql.slowlog.merge_passes": "0", + "mysql.slowlog.query": "UPDATE test SET test.state = 'NOT_RELEVANT', modified = now() WHERE test.id IN (26328833, 390, 149386, 152268, 160997, 165304, 168524, 184105, 193022, 194533, 194862, 196469, 196487, 246398, 256594, 260566, 261862, 262342, 263701, 264166, 264607, 267671, 274879, 276704, 280964, 284366, 289323, 289843, 290004, 298999, 301213, 303494, 307920, 311905, 316311, 318404, 330846, 340751, 341433, 357191, 369184, 376876, 378360, 378492, 379470, 382131, 384077, 388368, 396815, 396881, 398272, 398950, 399589, 401299, 408787, 411293, 419109, 425953, 427659, 433183, 437030, 438332, 438386, 447037, 454231, 455257, 455344, 456385, 460420, 460425, 461252, 462338, 462531, 462684, 463104, 463395, 471073, 480069, 480078, 482399, 485205, 487971, 497191, 500261, 501855, 517585, 519310, 519654, 522575, 538425, 543560, 562315, 573934, 583466, 583490, 583502, 597605, 600875, 601546, 603879, 604467, 604619, 757786, 797285, 799155, 802905, 806268, 806798, 811974, 819684, 822629, 826406, 837733, 840128, 840131, 840251, 840277, 840302, 842966, 844294, 844300, 847837, 852503, 854272, 854299, 862983, 881405, 881461, 881467, 881560, 881908, 882435, 882453, 882651, 882711, 882811, 888265, 888286, 914091, 916288, 916316, 917708, 918238, 918887, 919222, 926607, 976977, 977010, 977067, 977131, 977185, 988249, 988276, 988336, 988360, 988504, 990994);", + "mysql.slowlog.query_cache_hit": false, + "mysql.slowlog.query_time.sec": "153.883481", + "mysql.slowlog.rows_affected": "19198", + "mysql.slowlog.rows_examined": "120309968", + "mysql.slowlog.rows_sent": "0", + "mysql.slowlog.schema": "test", + "mysql.slowlog.timestamp": "1548062136", + "mysql.slowlog.tmp_disk_tables": "0", + "mysql.slowlog.tmp_table": false, + "mysql.slowlog.tmp_table_on_disk": false, + "mysql.slowlog.tmp_table_sizes": "0", + "mysql.slowlog.tmp_tables": "0", + "mysql.slowlog.user": "test", + "offset": 1311, + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19.log b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19.log new file mode 100644 index 00000000000..1572af7ff2c --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19.log @@ -0,0 +1,121 @@ +# Time: 2018-11-16T06:25:56.646222Z +# User@Host: check[check] @ localhost [] Id: 1098148226 +# Schema: Last_errno: 0 Killed: 0 +# Query_time: 0.010569 Lock_time: 0.000067 Rows_sent: 1 Rows_examined: 928 Rows_affected: 0 +# Bytes_sent: 180 Tmp_tables: 1 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# QC_Hit: No Full_scan: Yes Full_join: No Tmp_table: Yes Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# No InnoDB statistics available for this query +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1542349556; +SHOW GLOBAL STATUS LIKE 'wsrep_local_state'; +# Time: 2018-11-16T13:02:59.046552Z +# User@Host: select[select] @ [192.168.123.123] Id: 1101779094 +# Schema: database Last_errno: 0 Killed: 0 +# Query_time: 0.036112 Lock_time: 0.000165 Rows_sent: 1 Rows_examined: 1 Rows_affected: 0 +# Bytes_sent: 529 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# QC_Hit: No Full_scan: No Full_join: No Tmp_table: No Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# InnoDB_IO_r_ops: 0 InnoDB_IO_r_bytes: 0 InnoDB_IO_r_wait: 0.000000 +# InnoDB_rec_lock_wait: 0.000000 InnoDB_queue_wait: 0.000000 +# InnoDB_pages_distinct: 3 +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1542373379; +select config.id as id, config.active as active from config where config.id='123456'; +# Time: 2019-01-21T06:33:10.615939Z +# User@Host: exporter[exporter] @ localhost [] Id: 14366748 +# Schema: Last_errno: 0 Killed: 0 +# Query_time: 0.023385 Lock_time: 0.000039 Rows_sent: 390 Rows_examined: 390 Rows_affected: 0 +# Bytes_sent: 20195 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# QC_Hit: No Full_scan: Yes Full_join: No Tmp_table: No Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# No InnoDB statistics available for this query +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548052390; +SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT + FROM performance_schema.events_waits_summary_global_by_event_name; +# Time: 2019-01-21T06:34:30.932734Z +# User@Host: test[test] @ [192.168.123.123] Id: 14349788 +# Schema: test Last_errno: 0 Killed: 0 +# Query_time: 0.010278 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 Rows_affected: 0 +# Bytes_sent: 11 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# InnoDB_trx_id: 69B884E82 +# QC_Hit: No Full_scan: No Full_join: No Tmp_table: No Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# No InnoDB statistics available for this query +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548052470; +commit; +# Time: 2019-01-21T06:35:33.840616Z +# User@Host: exporter[exporter] @ localhost [] Id: 14367106 +# Schema: Last_errno: 1370 Killed: 0 +# Query_time: 0.014315 Lock_time: 0.000095 Rows_sent: 101 Rows_examined: 101 Rows_affected: 0 +# Bytes_sent: 7131 Tmp_tables: 111 Tmp_disk_tables: 24 Tmp_table_sizes: 114688 +# QC_Hit: No Full_scan: Yes Full_join: No Tmp_table: Yes Tmp_table_on_disk: Yes +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# No InnoDB statistics available for this query +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548052533; +SELECT + TABLE_SCHEMA, + TABLE_NAME, + TABLE_TYPE, + ifnull(ENGINE, 'NONE') as ENGINE, + ifnull(VERSION, '0') as VERSION, + ifnull(ROW_FORMAT, 'NONE') as ROW_FORMAT, + ifnull(TABLE_ROWS, '0') as TABLE_ROWS, + ifnull(DATA_LENGTH, '0') as DATA_LENGTH, + ifnull(INDEX_LENGTH, '0') as INDEX_LENGTH, + ifnull(DATA_FREE, '0') as DATA_FREE, + ifnull(CREATE_OPTIONS, 'NONE') as CREATE_OPTIONS + FROM information_schema.tables + WHERE TABLE_SCHEMA = 'sys'; +# Time: 2019-01-21T06:36:03.868128Z +# User@Host: exporter[exporter] @ localhost [] Id: 14367293 +# Schema: Last_errno: 1370 Killed: 0 +# Query_time: 0.050365 Lock_time: 0.010733 Rows_sent: 16 Rows_examined: 3146 Rows_affected: 0 +# Bytes_sent: 1362 Tmp_tables: 376 Tmp_disk_tables: 71 Tmp_table_sizes: 606208 +# QC_Hit: No Full_scan: Yes Full_join: Yes Tmp_table: Yes Tmp_table_on_disk: Yes +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# No InnoDB statistics available for this query +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548052563; +SELECT t.table_schema, t.table_name, column_name, `auto_increment`, + pow(2, case data_type + when 'tinyint' then 7 + when 'smallint' then 15 + when 'mediumint' then 23 + when 'int' then 31 + when 'bigint' then 63 + end+(column_type like '% unsigned'))-1 as max_int + FROM information_schema.tables t + JOIN information_schema.columns c + ON BINARY t.table_schema = c.table_schema AND BINARY t.table_name = c.table_name + WHERE c.extra = 'auto_increment' AND t.auto_increment IS NOT NULL; +# Time: 2019-01-21T06:36:40.896376Z +# User@Host: test[test] @ [192.168.123.123] Id: 14360213 +# Schema: test Last_errno: 0 Killed: 0 +# Query_time: 32.463767 Lock_time: 0.000084 Rows_sent: 267 Rows_examined: 267 Rows_affected: 0 +# Bytes_sent: 43805 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# QC_Hit: No Full_scan: No Full_join: No Tmp_table: No Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# InnoDB_IO_r_ops: 2 InnoDB_IO_r_bytes: 16384 InnoDB_IO_r_wait: 0.000213 +# InnoDB_rec_lock_wait: 0.000000 InnoDB_queue_wait: 0.000000 +# InnoDB_pages_distinct: 64832 +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548052600; +select test.id as id, test.modified as mo, test.product as pr from test where (test.state in ('NOT_RELEVANT')) and test.last<='2019-01-21 06:36:08.432' and test.modified<='2019-01-07 06:36:08.432' limit 100000; +# Time: 2019-01-21T09:15:36.487710Z +# User@Host: test[test] @ [192.168.123.123] Id: 14370752 +# Schema: test Last_errno: 3170 Killed: 0 +# Query_time: 153.883481 Lock_time: 0.024022 Rows_sent: 0 Rows_examined: 120309968 Rows_affected: 19198 +# Bytes_sent: 62 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# InnoDB_trx_id: 69BB9C7F9 +# QC_Hit: No Full_scan: No Full_join: No Tmp_table: No Tmp_table_on_disk: No +# Filesort: No Filesort_on_disk: No Merge_passes: 0 +# InnoDB_IO_r_ops: 9744 InnoDB_IO_r_bytes: 79822848 InnoDB_IO_r_wait: 0.883446 +# InnoDB_rec_lock_wait: 0.003038 InnoDB_queue_wait: 0.000000 +# InnoDB_pages_distinct: 64872 +# Log_slow_rate_type: query Log_slow_rate_limit: 100 +SET timestamp=1548062136; +UPDATE test SET test.state = 'NOT_RELEVANT', modified = now() WHERE test.id IN (26328833, 390, 149386, 152268, 160997, 165304, 168524, 184105, 193022, 194533, 194862, 196469, 196487, 246398, 256594, 260566, 261862, 262342, 263701, 264166, 264607, 267671, 274879, 276704, 280964, 284366, 289323, 289843, 290004, 298999, 301213, 303494, 307920, 311905, 316311, 318404, 330846, 340751, 341433, 357191, 369184, 376876, 378360, 378492, 379470, 382131, 384077, 388368, 396815, 396881, 398272, 398950, 399589, 401299, 408787, 411293, 419109, 425953, 427659, 433183, 437030, 438332, 438386, 447037, 454231, 455257, 455344, 456385, 460420, 460425, 461252, 462338, 462531, 462684, 463104, 463395, 471073, 480069, 480078, 482399, 485205, 487971, 497191, 500261, 501855, 517585, 519310, 519654, 522575, 538425, 543560, 562315, 573934, 583466, 583490, 583502, 597605, 600875, 601546, 603879, 604467, 604619, 757786, 797285, 799155, 802905, 806268, 806798, 811974, 819684, 822629, 826406, 837733, 840128, 840131, 840251, 840277, 840302, 842966, 844294, 844300, 847837, 852503, 854272, 854299, 862983, 881405, 881461, 881467, 881560, 881908, 882435, 882453, 882651, 882711, 882811, 888265, 888286, 914091, 916288, 916316, 917708, 918238, 918887, 919222, 926607, 976977, 977010, 977067, 977131, 977185, 988249, 988276, 988336, 988360, 988504, 990994);