2014年11月17日月曜日

topライクにperformance_schemaを眺めるらしいpstopとやら

pstop – a top-like program for MySQL (based on performance_schema) を見て試してみたメモ。

$ git clone https://github.com/sjmudd/pstop.git
$ cd pstop
$ ll
total 52
-rw-rw-r-- 1 ec2-user ec2-user  710 Nov 17 10:03 BUGS
-rw-rw-r-- 1 ec2-user ec2-user  738 Nov 17 10:03 keys.txt
drwxrwxr-x 2 ec2-user ec2-user 4096 Nov 17 10:03 lib
-rw-rw-r-- 1 ec2-user ec2-user 1315 Nov 17 10:03 LICENSE
-rw-rw-r-- 1 ec2-user ec2-user 3905 Nov 17 10:03 main.go
-rw-rw-r-- 1 ec2-user ec2-user 1986 Nov 17 10:03 NEW_FEATURES
drwxrwxr-x 6 ec2-user ec2-user 4096 Nov 17 10:03 performance_schema
-rw-rw-r-- 1 ec2-user ec2-user 1041 Nov 17 10:03 README.md
drwxrwxr-x 2 ec2-user ec2-user 4096 Nov 17 10:03 screen
-rw-rw-r-- 1 ec2-user ec2-user 5551 Nov 17 10:03 screen_samples.txt
drwxrwxr-x 2 ec2-user ec2-user 4096 Nov 17 10:03 state
drwxrwxr-x 2 ec2-user ec2-user 4096 Nov 17 10:03 version

おい、こいつgoだぞ…:(;゙゚'ω゚'): go弱な俺には起動の仕方すらわからない。。


$ go build
main.go:15:2: cannot find package "github.com/go-sql-driver/mysql" in any of:
        /usr/lib/golang/src/pkg/github.com/go-sql-driver/mysql (from $GOROOT)
        ($GOPATH not set)
main.go:16:2: cannot find package "github.com/nsf/termbox-go" in any of:
        /usr/lib/golang/src/pkg/github.com/nsf/termbox-go (from $GOROOT)
        ($GOPATH not set)
main.go:18:2: cannot find package "github.com/sjmudd/mysql_defaults_file" in any of:
        /usr/lib/golang/src/pkg/github.com/sjmudd/mysql_defaults_file (from $GOROOT)
        ($GOPATH not set)
main.go:19:2: cannot find package "github.com/sjmudd/pstop/lib" in any of:
        /usr/lib/golang/src/pkg/github.com/sjmudd/pstop/lib (from $GOROOT)
        ($GOPATH not set)
main.go:20:2: cannot find package "github.com/sjmudd/pstop/state" in any of:
        /usr/lib/golang/src/pkg/github.com/sjmudd/pstop/state (from $GOROOT)
        ($GOPATH not set)
main.go:21:2: cannot find package "github.com/sjmudd/pstop/version" in any of:
        /usr/lib/golang/src/pkg/github.com/sjmudd/pstop/version (from $GOROOT)
        ($GOPATH not set)

むーん。


$ export GOPATH=~/gopath
$ go get
go install: no install location for directory /home/ec2-user/pstop outside GOPATH
$ go build

よくわかってないけどこれでビルドできた。


$ ./pstop
2014/11/17 10:06:11 Could not load ini fileopen /home/ec2-user/.my.cnf: no such file or directory

どうも~/.my.cnfを読み込んで接続情報を取るらしい。


$ cat ~/.my.cnf
[client]
user= msandbox
password= msandbox
port= 5621
host= 127.0.0.1

$ ./pstop

起動できた。
TABキーを叩くとtable_io_waits_summary_by_table, table_io_waits_summary_by_table, file_summary_by_instance, table_lock_waits_summary_by_tableのタブを順繰りに表示してくれる。
"t"でp_sが収集し始めてからの累計と、最後に統計情報をリセット(たぶん、pstopの中で。いちども"z"を叩いてなければ、pstopが起動したときから)の累計切り替え。
"+", "-"で表示間隔の調整。"h"でヘルプだけど、ヘルプから戻るのはもう一度"h"。罠い。

今のところは荒削りにこれで機能が全てっぽい。innotopばりに発展していってくれるととてもうれしい。

0 件のコメント :

コメントを投稿