MySQL Casual #6で@studio3104さんが発表していたnata2を触った。
で、とりあえずローカルにnata2を起動しtd-agentを入れてプラグインを入れてmysqlslapを実行してみた。
動作環境はRuby2.1.2で。1.9系は動かなかった。
手順はgithubにも書かれているが、
https://github.com/studio3104/nata2
https://github.com/studio3104/fluent-plugin-nata2
以下は簡単な流れ。
まずnata2自体の設定。 git clone https://github.com/studio3104/nata2.git cd ./nata2 bundle install vim ./config.toml 中身は dburl = "mysql2://test_user:user_password@127.0.0.1/nata2" で。 次にMySQL側の設定。 /var/lib/mysql/slow-query.logを出すようにして、 mysql -u root -p CREATE DATABASE `nata2` GRANT ALL ON *.* TO test_user@'127.0.0.1' IDENTIFIED BY 'user_passwd'; flush privileges; exit; 完了したら、再度nata2の設定で bin/nata2server_init_database bundle exec rackup
で起動する。
td-agent.confはこんな感じ。
/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-nata2 でpluginをインスコして、 <source> type mysqlslowquery_ex read_from_head path /var/lib/mysql/mysql-slow.log tag slowquery.oranie.localhost pos_file /tmp/slowquery.log.pos last_dbname_file /tmp/slowquery.log.lastdb </source> <match slowquery.**> type nata2 remove_tag_prefix slowquery. server 127.0.0.1 port 9292 </match>
を設定しservice td-agent restartする。
これでちゃんとmysql-slow.logが出力され、fluentdがmysql-slow.logを読めていたら、
mysqlslap \ --user=test_user \ --password=user_passwd \ --host=127.0.0.1 \ --port=3306 \ --engine=innodb \ --auto-generate-sql \ --auto-generate-sql-load-type=read \ --auto-generate-sql-add-autoincrement \ --number-char-cols=3 \ --number-int-cols=5 \ --number-of-queries=10000 \ --concurrency=3 \ --iterations=10
とかでゴリゴリ負荷を掛けてslowquery logを出すと
な感じでslowquery logの可視化がされていて大変便利ですね。
みんな使って色々@studio3104さんにナタを投げつけてあげると良いと思います!