Herokuのアドオンと外部サービスを活用しよう
NewRelic
NewRelicは、Webアプリケーションのパフォーマンス計測と運用状況のモニタリングをしてくれるWebサービスです。データベースからデータ取得に要した時間や、レンダリングに要した時間など、詳細なパフォーマンス・データが、ほぼリアルタイムにグラフ化され、それらの情報を確認できるようになります。
現在のところ、Ruby On Railsフレームワークを利用したWebアプリケーション以外にも、Ruby、Java、.Net、PHPの言語に対応しています。
- サイトURL: http://newrelic.com
図1: NewRelicの画面(クリックで拡大) |
SonicGardenでは、長期的なサーバー・リソースのモニタリング/可視化に、muninを利用してきました。しかし、短期的にパフォーマンスが劣化した時には、どの処理のパフォーマンスが悪いのかを調査するために、サーバーにログインしてWebアプリケーション/Webサーバーのログなどを目視確認して劣化個所を特定するしかありませんでした。
そこで、短期的にパフォーマンスが劣化した場合の調査のため、NewRelicを採用することを決めました。導入検討時には、NewRelicの導入によって得られるメリットとして、以下のものを想定していました。
- どの処理にどのくらいの時間を要したのかを確認しやすい
- パフォーマンスが悪い個所が、即座に把握できる
- パフォーマンス・チューニングのインプット情報となる
- Webアプリケーションをバージョン・アップした前後の、負荷状況の変動状況が分かりやすい
副次的な効果ではありますが、Webアプリケーションのパフォーマンスが悪い個所をすぐに確認できるようになりました。プログラミング時にも、パフォーマンスを意識したコーディングができるようになりました。Webアプリケーションの運用で必要となるサーバー・リソースも抑えることができるようになりました。
NewRelicをHerokuで利用する
NewRelicをHerokuで利用する場合は、以下のコマンドを発行するか、HerokuのWebサービスにログインして、利用アドオンに追加します。
$ heroku addons:add newrelic:bronze
アドオンを追加したあとは、基本的にこちらのようにWebアプリケーションに設定をするだけで利用可能になります。
もし、前回動かしたサンプル・アプリ(lokka)でNewRelicを利用したい場合は、プラグインとしてソース・コードが公開されているので、こちらを参考に試してみるとよいかと思います。