PadrinoアプリでNewrelic

New relic

New relicはパフォーマンス監視サービスでRackアプリケーションの場合、用意されたnewrelic_rpmというGemをインストールするのみでNew relicが用意するダッシュボードでページが表示されるまでのパフォーマンスの詳細な内訳(Ruby自体の処理時間、DBが要した処理時間やスロークエリ等)を知ることができます。
アカウント作成は無償でもできて、無償の場合、1アプリケーションの直近30分のパフォーマンスを知ることができます。
今回はSqaleで動かしているPadrinoアプリのパフォーマンス監視を行うまでの手順を整理します。

アカウントを作成する

Newrelicを開くとトップページに "Create Your Free Account!" のリンクがあるのでここからアカウントを作成します。

newrelic.yml をダウンロードする

アカウントを作成してログインするとnewrelic用の設定ファイル newrelic.yml をダウンロードできるのでダウンロードしてPadrinoプロジェクト下のconfigディレクトリに配置します。

Gemfileにnewrelic用のライブラリ追加

Padrinoアプリで利用しているGemfileにnewrelic用のクライアントをインストールするための2行を追加。

# Padrino Stable Gem
gem 'padrino', '0.10.7'

# for newrelic
gem 'padrino-rpm', :git => "https://github.com/Asquera/padrino-rpm.git"
gem 'newrelic_rpm'

2013.2.24追記

  • ここでポイントは gem 'padrino'〜 の下にnewrelic用のgemを追加することです
  • padrino読む前に追加するとエラーになります。

Unicorn用の設定追記

Sqaleでは標準でアプリケーションサーバunicornなのでこちらを参考にして起動時の設定ファイルに追記します。

# config/boot.rb

::NewRelic::Agent.after_fork(:force_reconnect => true)  # Unicorn用に追加

Padrino.load!

実行結果

以上の設定を行ってSqaleへデプロイします。
そうすると正常に稼働すれば、数分後にnew relicのダッシュボードにパフォーマンス情報が表示されます。

また、組み込んだPadrinoアプリ上の log/newrelic_agent.log からも確認できます。

sqale@impas-hideack-1:~$ tail -f current/log/newrelic_agent.log 
[02/10/13 17:13:15 +0900 impas-hideack-1 (24017)] INFO : Connected to NewRelic Service at collector-5.newrelic.com:80
[02/10/13 17:13:15 +0900 impas-hideack-1 (24017)] INFO : Reporting performance data every 60 seconds.
[02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : Dispatcher: sinatra
[02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : Application: Impas
[02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : New Relic Ruby Agent 3.3.5 Initialized: pid = 24175
[02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : Agent Log at /home/sqale/current/log/newrelic_agent.log
[02/10/13 18:13:13 +0900 impas-hideack-1 (24175)] INFO : Resolved collector.newrelic.com to 204.93.223.153
[02/10/13 18:13:14 +0900 impas-hideack-1 (24175)] INFO : Resolved collector-5.newrelic.com to 204.93.223.139
[02/10/13 18:13:14 +0900 impas-hideack-1 (24175)] INFO : Connected to NewRelic Service at collector-5.newrelic.com:80
[02/10/13 18:13:14 +0900 impas-hideack-1 (24175)] INFO : Reporting performance data every 60 seconds.

機能を追加した際等々の折にアプリケーション側のパフォーマンス変化を気にしたい場合などに気楽に確認できるため便利です。