ITエンジニア/デザイナ向けにオープンソースを毎日紹介

ArproxyはRuby製、Ruby on Rails用のオープンソース・ソフトウェア(MIT License)です。

Ruby on Railsで使われるO/Rマッパーを使っていると、便利すぎるが故に細かい制御がしづらく、歯がゆい思いをしたことがあるかも知れません。そこで試してみてもらいたいのがArproxyです。とても面白い利用法が考えられそうです。


使い方の一例。executeメソッドをオーバーライドしています。これ自体はさほど珍しい処理ではないでしょう。


こちらは通常のActiveRecordを使った場合の処理フロー。


それに対してこちらはArproxyの場合。executeを実行した後でプロキシに渡しているイメージです。

これはSlow Query Loggerとしての利用。executeを実行した後、実行結果の時間を取得して処理分けをしています。リアルタイムにSlow Queryに対するワーニングを出すこともできるでしょう。

こちらはSQLをSELECT系に限定する処理。UPDATEやDELETEの不用意な実行を防止できます。

Arproxyを使うとそれ以外にもコメントを追加したり、ログに書き込む時の頭の文字を変更したりできます。SQLを分析したり、特殊な振り分けを考えたりする際に使えそうです。


MOONGIFTはこう見る

個人的に良いと思ったのはSlow Queryの検出ができる部分です。Railsでは実行タイミングが本当にデータが必要になった時に行われるので、ベンチマークを埋め込む部分が煩雑になります。しかしArproxyを使う場合はexecuteに埋め込めば良いだけです。

その結果をRedisなどの別なバックエンドに保存しておいても良いと思いますし、アラートを出すようにしておけばいち早く問題のあるSQLが判別できるようになります。開発時はもちろん、運用時にも便利なライブラリです。

cookpad/arproxy · GitHub

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2