New Relicでアプリケーションを丸裸にしよう
New Relicとは、APM製品の一つです。APMとはApplication Performance Managementの頭文字をとったもので、アプリケーションのパフォーマンスを管理する製品の総称です。
代表的なものには、
- New Relic
- Dynatrace
- JENNIFER
などがあります。
性能改善に力を入れている企業から注目を集めており、特にオンラインゲーム業界で頻繁に活用されています。
また、googleは、2012年の時点で検索順位のランキングアルゴリズムの一つに「表示速度」が関連していることも明言しています。そのことからも、今後注目度がより高くなっていく製品になるのではと思っています。
New Relicの特徴
今回紹介するのは「New Relic」です。New Relicの特徴を簡単にまとめてみます。
New Relic社が提供するAPMサービス
New Relicは製品名ですが、提供元の会社名でもあります。New Relicは米国のNew Relic社が提供するAPMサービスです。
7つのサービスから構成されている
NewRelicは7つのサービスから構成されています。
- APM
- BROWSER
- SYNTETICS
- MOBILE
- SERVERS
- PLUGINS
- INSIGHTS
それぞれのサービスの詳細は、New Relic の各製品紹介: New Relic ってアプリケーションパフォーマンス監視ツールじゃないの?をご覧ください。
今回利用したのは、「APM(ApplicationPeformanceMonitoring)」となります。
無償版と有償版がある
無償版(Lite)と有償版(Essential,Pro)が用意されています。
違いは機能制限とデータの保存期間です。有償版のEssentialでは月75ドルから利用が可能なようです。
クラウドを利用している場合は、より安価に利用できるプランなどもあるようなので、詳細は公式サイトを見てみましょう。
公式サイト:https://newrelic.com/application-monitoring/pricing
14日間のトライアルがある
New Relicは14日間のトライアル期間が設けられています。トライアル中は「Pro」版と同様の機能の利用が可能です。
APMについては、公式サイトを見る限り、無料版のLiteの情報がないのでトライアル中に限って利用ができるのかもしれません。ここについては、14日経過後に記事を更新しようと思います。
New Relic APMの利用方法
具体的にAPMを利用する方法を紹介します。
アカウント登録
まずアカウント登録を行います。
登録画面:https://newrelic.com/signup?trial=apm
名前、メールアドレス、電話番号など入力が必要です。(全て必須なのでちょっと面倒…)
トライアル版では、クレジットカードの登録は不要です。有償版に切り替えたい人に限り、アカウント作成後にカード登録を行いましょう。
サーバへエージェントインストール
アカウント登録が終わったら、コントロールパネルへログインします。
ログイン後、インストール対象の言語を選択します。今回はWordPress環境にインストールするのでphpを選択します。
ライセンスキーとインストール手順の画面に従いインストールを行います。
32bitの場合
sudo rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
64bitの場合
sudo rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
インストール
インストール時にライセンスキーの入力が求められます。ライセンスキーはあとからでも、「/etc/php.d/newrelic.ini」から登録が可能です。
sudo yum install newrelic-php5 sudo newrelic-install install →ライセンスキー入力
WEBサーバ再起動
/etc/init.d/httpd restart
エージェントの起動確認
ps auxxx|grep newrelic root 17751 0.0 0.2 858572 2700 ? Ssl 09:54 0:00 /usr/bin/newrelic-daemon --agent --pidfile /var/run/newrelic-daemon.pid --logfile /var/log/newrelic/newrelic-daemon.log --port /tmp/.newrelic.sock --tls --define utilization.detect_aws=true --define utilization.detect_docker=true root 17756 0.0 1.9 890904 20392 ? Sl 09:54 0:05 /usr/bin/newrelic-daemon --agent --pidfile /var/run/newrelic-daemon.pid --logfile /var/log/newrelic/newrelic-daemon.log --port /tmp/.newrelic.sock --tls --define utilization.detect_aws=true --define utilization.detect_docker=true -no-pidfile root 20230 0.0 0.0 3004 724 pts/0 S+ 12:35 0:00 grep newrelic
コンパネで情報閲覧
インストールが完了すると、エージェントが情報をNew Relicサーバへ送り始めます。5分ほどするとコントロールパネルから情報の閲覧が可能になります。
何がわかるの?
実際にコントロールパネルで分かる情報を紹介します。
Transactions(トランザクション)
トランザクションでは、動作したphp単位の情報を閲覧することが可能です。具体的には、「index.php」や「wp-cron.php」などです。WordPressの場合、ほとんどのアクセスがindex.phpで動作しているため、index.phpの出現が多くなります。
各トランザクションが所要時間合計や平均時間などを見ることができます。この情報から、良く動作するphpや動作が遅いphpを探すことができます。
また、トランザクションをクリックすると、そのトランザクションで使われているデータベースの情報を確認することができるので、特定の遅いクエリの調査などに役立ちます。
WordPress(WordPressの情報)
WordPressに特化した情報を閲覧することも可能です。
Hooks(フック)
フックは、the_contentやthe_postsなどの関数で、WordPress固有の機能です。フィルターフックやアクションフックといったものが該当します。
こちらもトランザクション同様、各フックごとに所要時間合計や平均時間をみることができます。
フックはトランザクションよりも細かい単位なので、処理負荷が高いものを探し出すのに重宝します。
Plugin(プラグイン)
プラグインは、その名の通りWordPressのプラグインをモニタリングしたものです。
各プラグインの所要時間合計や平均時間などを見ることができます。プラグインはWordPressの性能に大きな影響を与えるものなので必ずチェックしておくといいでしょう。
ちなみに、うちのサイトでは、コマンドやプログラムを装飾するプラグイン「crayon-syntax-highlighter」が最も処理に時間がかかっているようです。
Databases(データベース)
データベースでは、テーブル単位(?)で所要時間合計や平均時間などを見ることができます。
データベースをクリックすると、それが使われているトランザクションの一覧が確認できるので、影響範囲を特定するのに役立ちます。
便利な情報
タイムゾーンの変え方
ダッシュボードのデフォルト設定では、タイムゾーンが日本ではありません。
タイムゾーンの変更は、USER preferenceから行うことができます。
サーバはバーチャルドメインを切らないほうが良い
パッと見た感じはバーチャルドメインごとに情報が出るわけではないようです。サーバ上の全ドメインの情報がまとめて出力されてきます。
バーチャルドメイン設定がないサーバへインストールしたほうが良さそうです。
まとめ
パフォーマンスを管理するAPM製品。手軽に使えるNew Relicについて紹介してみました。
システムエンジニアとインフラエンジニアが同じ情報を見ることで、責任のなすりつけ合いから、課題解決に向けた共同体としての意識を付けることができると思います。
DevOpsのためのツールとしてNew Relicを導入してみてはいかがでしょうか。
この記事へのコメントはこちら