2008年05月30日

Railsのログからリクエスト時間ごとや閲覧回数ごとなどのランキングを生成してくれるツール

Rawk - Ruby on Rails Log Analyzer

 時間のかかっている処理をログから抽出したいと思い検索し見つけたツールです。

 ただのRubyのスクリプトで

 $> ruby [ダウンロードしたスクリプトファイルのパス] < [対象のログファイルのパス(production.log等)

で解析し、コンソールに結果を出力してくれます。

 ただ、現時点の最新(1.2)が私の環境(Rails 1.2.5)のログだとうまく動いてくれず(ZeroDivisionErrorが発生)、スクリプトを修正する必要がありました。

 修正は、スクリプトの181行目に対し以下のように行いました。


修正前) next unless $_.index("Completed in") == 0

修正後) next unless $_.index("Completed in")


 同じ現象が発生するなら試してみて下さい。


 また、通常はリクエストURLからコントローラーとアクションを推測して集計されます。そのためruotes.rbの設定によっては、うまく単位がまとまってくれない場合があります。

 その場合、ログに指定した形式でプロセスIDを出すようにすると、コントローラーのアクションごとに集計してくれるようになります。

 それは、config/environment.rbに以下の記述を追加すればできるようになります。(ちなみに、スクリプトのヘルプ(-?を与えて実行で出力される)で指定される記述だとうまくいきませんでした)

class Logger
alias format_message old_format_message

def format_message(severity, timestamp, progname, msg)
old_format_message(severity, timestamp, progname, "#{msg} (pid:#{$$})")
end
end

 ちょっと修正が必要でしたが、ほぼ手間なしで有用な分析情報が手に入れられます。サイトの改善などに悩んでいるRails開発者には便利なツールといっていいでしょう。
タグ:ruby on rails

posted by よっしぃ at 17:55 | Comment(0) | TrackBack(0) | Ruby On Rails

2008年05月22日

Passenger上のRailsとTracなどを共存させるための設定(の追記)

Passenger上のRailsとTracなどを共存させるための設定

 上記の設定をしてもapacheの設定の<VirtualHost>〜</VirtualHost>内にPassenger(mod_rails)とtracの設定が共存しているとtracが動かななってしまいました。

 今回はそれを解消する方法がわかったので紹介させていただきます。

 apacheの設定で

 ScriptAlias /trac /usr/share/trac/cgi-bin/trac.fcgi
 ※trac.fcgiのパスは環境によって違う可能性があります



 ScriptAliasMatch /trac(.*) /usr/share/trac/cgi-bin/trac.fcgi

とします。

 これだけです。

 これで、ようやく同じドメインでPassenger(mod_rails)のRailsとtracの共存ができるようになりました。

 この問題でPassenger(mod_rails)の導入ができてなかった人は是非試してみて下さい!

タグ:ruby on rails

posted by よっしぃ at 12:57 | Comment(0) | TrackBack(0) | Ruby On Rails

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。