Satoryu's Diary

Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。


2014年01月12日

_ tDiaryをNew Relicで監視してみる

New Relic's Logo

ウェブアプリケーションのパフォーマンス監視のサービスにNew Relicというのがあって、無料で使えるというので試しに使ってみた。 監視する対象として、せっかくなのでこのtDiaryのパフォーマンスを見ている。

設定

New relicのアカウントを作成してからは、設定自体はとても簡単。

クライアントのインストール

Ruby用のクライアントがgem として公開されているので、Gemfileに

gem 'newrelic_rpm'

を追加して、bundle install すればいい。

Rack ミドルウェアを差し込む

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 アプリもあるので、手軽に負荷状況が見れるのも面白い。


最近の投稿

翻訳しました(ちょっとだけ)

follow us in feedly