こんにちわ!ランサーズの satoshi です。
今回は、クライアントサイド、サーバーサイド両方のモニタリングが出来る NewRelic をご紹介します。
サーバーのモニタリングツールだと、Munin 等が有名ですが、導入には手間がかかります。しかし、NewRelic なら、本当に5分で導入が完了します!しかも超簡単です。
まずは、ざっくりと機能の紹介をさせて頂きますので、導入方法 を知りたい方は、読み飛ばして下さい!
サーバーサイドのモニタリング
レスポンスタイム
上記のグラフのようにアプリケーションの処理、データベース処理、キャッシュエンジンを使っているならその処理(この場合はMemcached)それぞれに使われた時間が表示されます。
これが、各ページ毎に確認する事が出来き、ページでレスポンスが悪い場合、右下に トレース の結果が表示されます。
トレースでの内容(transaction traces)
Summaryタブ
どの処理に時間がかかっているのか、データベースのテーブルへのSELECT分単位で確認する事が出来ます。ここまで確認できるのはかなり便利です。
Trace detaillsタブ
時系列での処理内容が確認できます。各クラスとメソッド単位で確認できるので、フレームワークの理解の助けにもなるのでは?
SQL statementタブ
これでは、具体的なクエリレベルでの確認が出来ます。MySQLだとスローログを取っていれば確認できますが、NewRelicなら他のボトルネックと合わせて確認出来る事が魅力です。これでパフォーマンスチューニングが楽になりますね。
クライアントサイドのモニタリング
Web application:サーバサイドの処理
Network:ソースダウンロード通信
DOM processing:DOM 構築処理
Page rendering:CSS, Js などでのページが表示するまでの処理
上記がそれぞれどれくらいの時間なのかをグラフにて表示されます。
5分で完了!簡単導入ガイド
お待たせしました。それでは、NewRelicの導入手順をご紹介します。
今回は PHP x CentOS での手順となります。
まずは、NewRelic にてアカウント を作って下さい。
アカウントを作成したら「Get Started」から開始します。
はじめに、言語を選択して下さい。今回は PHP を選択しました。
1. Get your license key
「Reveal license key」からライセンスキーを表示させます。ここはこのままで大丈夫です。
2. Install the PHP agent
環境を選択します。今回は「RPM-based (Redhat, Centos, etc.)」を選択しました。
この下に表示されるコードを実行します。64bitの環境なので、以下を実行。
sudo rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
その後、以下のパッケージをインストールします。
sudo yum install newrelic-php5 sudo newrelic-install install
newrelic-install install の際に、ライセンスキーを聞かれるので、上記で表示させたライセンスキーを利用します。
3. php.ini にライセンスキーを登録します。
- バックアップ
- 編集 表示されているライセンスキーを登録
- 反映内容の確認
- 適応
sudo cp /etc/php.ini{,.`date +%Y%m%d`}
newrelic.license="00000000000000000000000000"
sudo diff /etc/php.ini{,.`date +%Y%m%d`}
sudo /etc/init.d/httpd graceful
まれに、graceful だと反映されない事があるそうなので、その場合は、 restart して下さい。
phpinfo() にて、newrelic の項目があれば、成功です。正しく登録できていれば、5分程で結果が確認できます。
今回は、PHP x CentOS での手順ですが、 NewRelic のサービス上でもそれぞれの環境に応じた手順がありますので、その他の言語(Ruby, Python, Node.js, .NET)OS でもご安心ください!
今回ご紹介した機能はNewRelicのほんの一部の機能なので、興味ある方は是非色々触ってご活用ください。スマホへのプッシュもできるアラート機能やサーバのMuninのようにリソース監視なども出来ますので、機会があればまた紹介させて頂きます!
ランサーズでは、現在、Webエンジニアを募集しています。
詳しくは、募集要項をご覧下さい。