A tool to print MySQL transactions that take more than <n> milliseconds
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
COPYING
Makefile
README
local_addresses.cc
local_addresses.h
my_slow_tran_capture.cc
my_slow_tran_capture.h
sll.h

README

MySlowTransactionCapture - A tool to print MySQL transactions that take 
more than <n> milliseconds

Reasons for developing this tool was described here: http://yoshinorimatsunobu.blogspot.com/2011/04/tracking-long-running-transactions-in.html
 
How to use:
* Install libpcap, libpcap-devel, boost, and boost-devel if not installed
* make
* make install
* Run myslowtrancapture
--
[root]# myslowtrancapture -i bond0

Tips:

* Use -i "interface name" to listen to specific NIC.
--- example ---
[root]# myslowtrancapture -i eth1
Monitoring eth1 interface..
Listening port 3306..
Logging transactions that take more than 4000 milliseconds..
---------------

* Use -f "filtering rules" to listen to specific IP addresses/ports.
Filtering syntax is the same as that of tcpdump.
--- example ---
[root]# myslowtrancapture -f "tcp port 5508"
Monitoring any interface..
Filtering rule: tcp port 5508
Logging transactions that take more than 4000 milliseconds..
---------------

* Use -t milliseconds to change printing criteria.
--- example ---
[root]# myslowtrancapture -i eth0 -t 10000
Monitoring eth0 interface..
Listening port 3306..
Logging transactions that take more than 10000 milliseconds..
---------------

* Use -o when your MySQL server speaks old MySQL protocols.
--- example ---
[root]# myslowtrancapture -i eth0 -t 10000 -o
Monitoring eth0 interface..
Listening port 3306..
Logging transactions that take more than 10000 milliseconds..
Capturing MySQL old protocols..
---------------

Limitations:
* Implicit commit by DDL is not supported (not handled as transaction ends).
* MySQL Server-Side Prepared Statement protocol is not supported.

License: GNU General Public License version 2

Author: DeNA Co.,Ltd. <Yoshinori.Matsunobu@gmail.com>
* MySQL protocol command constants were taken from MySQL source code
* local_address.c, local_address.h were taken from tcprstat(http://github.com/Lowercases/tcprstat/) authored by Ignacio Nin under GNU General Public License version 2.
* sll.h was taken from libpcap under BSD 4.3 license.