TL;DR
--output=slowlog
と--no-report
でできる- pt-query-digest
書き出しが全てなのでそれは置いておいてハマったこと。
pt-query-digest --type=tcpdump
の2020年問題- PT-1793 workaround for year 2020 problem by kei500 · Pull Request #434 · percona/percona-toolkit
- この修正が反映されているのは percona-toolkit 3.2.0 とそれ以降
- 3.1.0-2を見間違えておかしいなーおかしいなーってなってた(´・ω・`)
--output
のバリエーションは--help
では調べられないman pt-query-digest
か、 ドキュメント を見る- 俺はパッチ当てようとソースコード泳いでたら気が付いた…
サンプル取るのに
sysbench
を8.0クライアントライブラリにリンクしてコンパイルしたけど、TCP経由の通信はデフォルトでSSL/TLSを使ってた- Connector/Cのデフォルトをそのまま使ってた
127.0.0.1:64080
と3306以外のポートを使っているので pt-query-digest --watch-server
で指定する必要がある。
$ ./src/sysbench --mysql-ssl=DISABLED --mysql-user=sbtest --mysql-host=127.0.0.1 --mysql-port=64080 oltp_point_select --table_size=100 run
$ sudo tcpdump -s 65535 -x -nn -q -tttt -i any port 64080 | pt-query-digest --type=tcpdump --watch-server=127.0.0.1:64080 --no-report --output=slowlog
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
Reading from STDIN ...
TCP session 127.0.0.1:54906 had errors, will save them in /tmp/pt-query-digest-errors.fAJEZ24
# Time: 200518 19:21:39.084382
# Client: 127.0.0.1:54906
# Thread_id: 4294967296
# Query_time: 0.000168 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
PREPARE SELECT c FROM sbtest1 WHERE id=?;
# Time: 200518 19:21:39.084792
# Client: 127.0.0.1:54906
# Thread_id: 4294967296
# Query_time: 0.000246 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
EXECUTE SELECT c FROM sbtest1 WHERE id=42;
# Time: 200518 19:21:39.084989
# Client: 127.0.0.1:54906
# Thread_id: 4294967296
# Query_time: 0.000121 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
EXECUTE SELECT c FROM sbtest1 WHERE id=46;
うむ。
0 件のコメント :
コメントを投稿