New Relicでアプリケーションのパフォーマンス測定
New Relicとは
New Relicとは、パフォーマンス監視サービスです。 サーバ側にnewrelic用モジュールをインストールし、サーバ/アプリケーションの レスポンスや実行にかかった時間などの統計情報をNew Relicのサイトで確認できます。 Java/Python/PHP/nodeなど、いろいろな言語に対応しており、 Heroku等のPaaS上で使用することもできます。 さらに最近は、モバイルの用アプリ(iOS/Android)のパフォーマンスをモニタリングできるようになったらしいです。
今回はEC2インスタンスにnewrelicサーバ用モジュールをインストールし、 EC2上で動作しているnodeアプリケーションのパフォーマンスを測定してみます。
使用した環境
今回使用した動作環境は以下のとおりです。
- OS : Amazon Linux(EC2)
New Relicを使ってみる
1.New Relicアカウント登録
まずは、New Relicの公式サイトで無料アカウント登録をします。 その後、Account settings画面へいき、License keyを確認しておきましょう。 このキーを、後でインストールする設定ファイルに記述します。
2.newrelicサーバモジュールをインストール
対象のEC2サーバにsshログインし、下記コマンドを実行してモジュールをインストールしましょう。
% sudo rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm % sudo yum -y install newrelic-sysmond % sudo nrsysmond-config --set license_key=<先ほど確認したライセンスキー> % sudo /etc/init.d/newrelic-sysmond start
これでnewrelicモジュールが起動し、ダッシュボードで情報を見ることができるようになります。 自動的にサーバ一覧に追加してくれるので楽ですね。
CPUやメモリの使用量、ネットワーク通信量等、いろいろな情報を確認することができます。 さらに、サーバで起動しているプロセスの詳細も確認することができます。
3.nodeアプリにnewrelicモジュールをインストール
では次に、EC2上で稼働しているnode.jsアプリのパフォーマンスを測定してみましょう。 node用newrelicはnpmでインストールできます。 EC2上で稼働するnodeアプリのカレントへ移動し、モジュールのインストールと設定ファイルのコピーを行います。
% npm install newrelic % cp node_modules/newrelic/newrelic.js ./
コピーしたnewrelic.jsを編集します。 app_nameにはアプリ名を、license_keyにはライセンスキーを指定しましょう。 そして、node.jsアプリのエントリーポイントとなるjsファイルの先頭で、 newrelicモジュールのロードを行います。
//nodeアプリの起動ファイルの先頭に記述 require('newrelic');
ファイルを修正したらnodeアプリを再起動しましょう。 しばらくすると、ダッシュボードのアプリケーション項目にデータが表示されます。 URL毎のレスポンスタイム等の詳細データを確認することができます。
まとめ
パフォーマンス監視サービスである、New Relicを少しだけ使ってみました。 今回は無料プランで試したのですが、無料の場合はログの保存期間が短かったり 機能が制限されていたります。 有料プランを使用すれば、いろいろな機能が使えます。 Aamazon Cloud watchと併用すれば、さらに詳細な情報を分析することができますね。
参考サイトなど
- New Relic: http://newrelic.com/
- node-newrelic: https://github.com/newrelic/node-newrelic