- 更新日: 2015年3月26日
- Rails
RailsアプリケーションにNew Relicを導入
New Relic はサーバー・アプリケーション監視の SaaS(Software as a Service)です。ウェブアプリケーション用としては、2015/03/25 時点で Ruby/PHP/Java/.NET/Python/Node のプロジェクトに対応しています。他にも AWS/Azure/iOS/Android/MySQL/Redis/MongoDB などのモニタリングに対応。
Application Performance Management & Monitoring | New Relic
監視ツールとしては、Zabbix, Munin, Nagios などオープンソースのツールがありますが、それらに比べると New Relic はとにかく導入が簡単です。
無料プランだと間近24時間までのデータを参照できます。料金プランは以下。
New Relic Pricing for Application Performance Monitoring | New Relic APM
やった作業まとめ
今回は、Rails アプリケーションに New Relic を導入してみます。Rails アプリケーションの場合であれば、以下5ステップで作業完了です。
1. New Relic にサインアップ
2. New Relic の agent 用 gem をインストール
3. newrelic.yml をダウンロード後 config/ に設置して修正
4. development 環境と New Relic ダッシュボードで動作確認
5. デプロイ後、各環境ごとのデータを確認
1. New Relic にサインアップ
Sign up for New Relic | Application Performance Management & Devops Tools からサインアップ。
しばらくすると、サインアップの確認メールが来るので、メール内の Complete Setup をクリック。サインアップ後にログインすると導入手順が表示されます。
「Get started with New Relic / Select a web agent to install.」で Ruby のロゴを選択すると、Ruby プロジェクト用のセットアップ手順が表示されるので、それに従って進める。
2. New Relic の agent 用 gem をインストール
Rails プロジェクトの Gemfile に、New Relic の agent 用 gem を追記しインストールします。
Gemfile
1 |
gem 'newrelic_rpm' |
コマンドラインから bundle install。
1 2 3 |
$ bundle install |
3. newrelic.yml をダウンロード後 config/ に設置して修正
ガイダンスの「Download newrelic.yml」から、newrelic.yml をダウンロードして、Rails プロジェクトの config ディレクトリに設置する。
あるいは New Relic にログイン後、右上プルダウンメニューの Account Settings ページに移動し、右下にある「Download a clean configuration file」からも newrelic.yml をダウンロードできます。
続いて、newrelic.yml を修正。「My Application」の箇所を、自分のアプリケーション名に変更します。
また、newrelic.yml では development, test, production, staging の環境がデフォルトで設定されており、newrelic.yml 内に以下の記述がある。
config/newrelic.yml
1 2 3 4 5 |
# Application Environments # ------------------------------------------ # ... # NOTE if your application has other named environments, you should # provide newrelic configuration settings for these environments here. |
なので、それら以外の環境がある場合は、必要に応じて設定を追加すると良いでしょう。
4. development 環境と New Relic ダッシュボードで動作確認
config/newrelic.yml で以下の行を確認する。
1 2 3 |
development: # ... developer_mode: true |
developer_mode: true となっていると、http://ホスト名/newrelic の URL で Developer Mode の画面を確認できる。development 環境でサーバーを起動します。
1 2 3 |
$ bundle exec rails s |
Rails アプリケーション(http://localhost:3000/)にアクセスして、適当に何ページか表示させる。その後、http://localhost:3000/newrelic にアクセスして、New Relic の Developer Mode ページが表示されたら、導入成功です。
また New Relic のダッシュボード画面(All applications – New Relic)でも、数分以内に自分のアプリケーション名(環境名)が表示されて、development 環境での各種統計データを確認できます。
5. デプロイ後、各環境ごとのデータを確認
後は、staging, production などの環境にデプロイすると、各々環境ごとに New Relic ダッシュボード画面(All applications – New Relic)でデータを確認できる。
config/newrelic.yml を以下のようにする。
1 2 3 4 5 6 7 8 9 |
production: <<: *default_settings monitor_mode: true app_name: AppName (Production) staging: <<: *default_settings monitor_mode: true app_name: AppName (Staging) |
production の app_name は、デフォルトでは書いてなかったので、なくても良いのかも。デプロイ後、データが反映されるのに少々時間がかかりました(10分程度)。
あと、デプロイ時の注意点として… config/newrelic.yml には New Relic の license_key が直書きされているので、.gitignore に指定して git リポジトリに含めないようにした。license_key の取り扱いがいまいち分かっていないのですけど、一応安全策として。
そして、Capistrano の設定ファイル config/deploy.rb の linked_files に config/newrelic.yml を追記して、deploy:upload のタスクで config/newrelic.yml を production などの環境の shared_path にアップロードするようにしました。Capistrano については以下を参考。
Capistrano3でRails4.1アプリケーションをデプロイ | EasyRamble
Capistrano3とBitbucketを使ってRailsアプリをデプロイ | EasyRamble
以上で、New Relic 導入は終了です!
- – 参考リンク –
- 性能監視サービスNew Relicについて | 稲葉サーバーデザイン
- 【Rails入門】パフォーマンスを計測する、New Relicを導入する – tech-log
- New Relic – Ruby and Rails
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
- 初回公開日: 2015年3月25日
Leave Your Message!