Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。
ウェブアプリケーションのパフォーマンス監視のサービスにNew Relicというのがあって、無料で使えるというので試しに使ってみた。 監視する対象として、せっかくなのでこのtDiaryのパフォーマンスを見ている。
New relicのアカウントを作成してからは、設定自体はとても簡単。
Ruby用のクライアントがgem として公開されているので、Gemfileに
gem 'newrelic_rpm'
を追加して、bundle install すればいい。
RailsやSinatra は、require
すれば自動的に差し込まれるようだが、自前のRackアプリの場合は少々修正が必要のようだ。
tDiaryは素敵なことにRackアプリケーションとして提供されているので、New Relicのミドルウェアを差し込めば、パフォーマンス監視ができる!
ということで、以下のようにconfig.ru
を修正。
$:.unshift( File::dirname( __FILE__ ).untaint )
require 'dotenv'
Dotenv.load ".env.#{ENV['RACK_ENV'].downcase}", '.env'
require 'tdiary'
require 'tdiary/rack/html_anchor'
require 'tdiary/rack/valid_request_path'
require 'tdiary/rack/auth/basic'
require 'omniauth'
require 'tdiary/rack/auth/omniauth'
use Rack::Reloader unless ENV['RACK_ENV'] == 'production'
## Begin: New Relic
require 'new_relic/agent/instrumentation/rack'
class TDiary::Application
include ::NewRelic::Agent::Instrumentation::Rack
end
require 'new_relic/rack/agent_hooks'
require 'new_relic/rack/browser_monitoring'
require 'new_relic/rack/error_collector'
use NewRelic::Rack::AgentHooks
use NewRelic::Rack::BrowserMonitoring
use NewRelic::Rack::ErrorCollector
## End: New Relic
run TDiary::Application.new
こんな感じで、あとはアクセスがある度にデータがNew Relicに送られ、モニターを見れる。 iPhone アプリもあるので、手軽に負荷状況が見れるのも面白い。