New Relicでアプリケーションを丸裸にしよう

   2018/01/09

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(フック)

WordPressのフック

WordPressのフック

フックは、the_contentやthe_postsなどの関数で、WordPress固有の機能です。フィルターフックやアクションフックといったものが該当します。

こちらもトランザクション同様、各フックごとに所要時間合計や平均時間をみることができます。

フックはトランザクションよりも細かい単位なので、処理負荷が高いものを探し出すのに重宝します。

Plugin(プラグイン)

WordPressのプラグイン

WordPressのプラグイン

プラグインは、その名の通りWordPressのプラグインをモニタリングしたものです。

各プラグインの所要時間合計や平均時間などを見ることができます。プラグインはWordPressの性能に大きな影響を与えるものなので必ずチェックしておくといいでしょう。

ちなみに、うちのサイトでは、コマンドやプログラムを装飾するプラグイン「crayon-syntax-highlighter」が最も処理に時間がかかっているようです。

Databases(データベース)

データベース

データベース

データベースでは、テーブル単位(?)で所要時間合計や平均時間などを見ることができます。

データベースをクリックすると、それが使われているトランザクションの一覧が確認できるので、影響範囲を特定するのに役立ちます。

データベースをクリックしたところ

データベースをクリックしたところ

便利な情報

タイムゾーンの変え方

ダッシュボードのデフォルト設定では、タイムゾーンが日本ではありません。

タイムゾーンの変更は、USER preferenceから行うことができます。

user preferenceからタイムゾーンを変更

user preferenceからタイムゾーンを変更

timezone

timezone

サーバはバーチャルドメインを切らないほうが良い

パッと見た感じはバーチャルドメインごとに情報が出るわけではないようです。サーバ上の全ドメインの情報がまとめて出力されてきます。

バーチャルドメイン設定がないサーバへインストールしたほうが良さそうです。

まとめ

パフォーマンスを管理するAPM製品。手軽に使えるNew Relicについて紹介してみました。

システムエンジニアとインフラエンジニアが同じ情報を見ることで、責任のなすりつけ合いから、課題解決に向けた共同体としての意識を付けることができると思います。

DevOpsのためのツールとしてNew Relicを導入してみてはいかがでしょうか。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。