mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
copy tokustat.py from subversion. dont care about history.
This commit is contained in:
parent
53ee98b319
commit
6b14ff98b2
1 changed files with 98 additions and 0 deletions
98
scripts/tokustat.py
Executable file
98
scripts/tokustat.py
Executable file
|
@ -0,0 +1,98 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
import time
|
||||
import re
|
||||
import MySQLdb
|
||||
|
||||
def usage():
|
||||
print "diff the tokudb engine status"
|
||||
print "[--host=HOSTNAME] (default: localhost)"
|
||||
print "[--port=PORT]"
|
||||
print "[--sleeptime=SLEEPTIME] (default: 10 seconds)"
|
||||
return 1
|
||||
|
||||
def printit(stats, rs, sleeptime):
|
||||
# print rs
|
||||
for t in rs:
|
||||
l = len(t) # grab the last 2 fields in t
|
||||
k = t[l-2]
|
||||
v = t[l-1]
|
||||
# print k, v
|
||||
if stats.has_key(k):
|
||||
oldv = stats[k]
|
||||
if v != oldv:
|
||||
print k, "|", oldv, "|", v,
|
||||
try:
|
||||
vi = int(v)
|
||||
oldvi = int(oldv)
|
||||
d = vi - oldvi
|
||||
if d <= 0 or d < sleeptime:
|
||||
raise "invalid"
|
||||
print "|", d, "|", d / sleeptime
|
||||
except:
|
||||
print
|
||||
stats[k] = v
|
||||
print
|
||||
|
||||
def main():
|
||||
host = None
|
||||
port = None
|
||||
user = None
|
||||
passwd = None
|
||||
sleeptime = 10
|
||||
q = 'show engine tokudb status'
|
||||
|
||||
for a in sys.argv[1:]:
|
||||
if a == "-h" or a == "-?" or a == "--help":
|
||||
return usage()
|
||||
match = re.match("--(.*)=(.*)", a)
|
||||
if match:
|
||||
exec "%s='%s'" % (match.group(1),match.group(2))
|
||||
continue
|
||||
return usage()
|
||||
|
||||
connect_parameters = {}
|
||||
if host is not None:
|
||||
if host[0] == '/':
|
||||
connect_parameters['unix_socket'] = host
|
||||
else:
|
||||
connect_parameters['host'] = host
|
||||
if port is not None:
|
||||
connect_parameters['port'] = int(port)
|
||||
if user is not None:
|
||||
connect_parameters['user'] = user
|
||||
if passwd is not None:
|
||||
connect_parameters['passwd'] = passwd
|
||||
|
||||
try:
|
||||
db = MySQLdb.connect(**connect_parameters)
|
||||
except:
|
||||
print sys.exc_info()
|
||||
return 1
|
||||
|
||||
print "connected"
|
||||
|
||||
stats = {}
|
||||
while 1:
|
||||
try:
|
||||
c = db.cursor()
|
||||
n = c.execute(q)
|
||||
rs = c.fetchall()
|
||||
db.commit()
|
||||
c.close()
|
||||
except:
|
||||
print "db", sys.exc_info()
|
||||
return 2
|
||||
|
||||
try:
|
||||
printit(stats, rs, int(sleeptime))
|
||||
time.sleep(int(sleeptime))
|
||||
except:
|
||||
print "printit", sys.exc_info()
|
||||
return 3
|
||||
|
||||
|
||||
return 0
|
||||
|
||||
sys.exit(main())
|
Loading…
Add table
Reference in a new issue