-
Notifications
You must be signed in to change notification settings - Fork 9
newrelic
New Relic Application Performance Monitoring (APM)は、オンデマンド方式のwebアプリケーションパフォーマンス管理用アドオンです。New Relic APMは、Herokuのプラットフォームとシームレスな統合環境を提供し、New Relicのモニタリング、トラブルシューティング、そしてwebアプリケーションのチューニングと言った包括的な機能へ迅速かつ自動的にアクセスすることを可能とします。
New Relic APMをアプリケーションにアドオンすることで、以下のようなことを調査することが可能となります。:
- カスタマーの満足度 ~リアルタイムのエンドユーザーエクスペリエンスモニタリング機能により
- アプリケーション全体の健康状態と可用性の確認 ~アプリケーションモニタリング機能により
- WindowsとLinuxのWebサーバーリソースの確認 ~サーバーモニタリング機能により
New Relic APMは、Ruby、Java、Pythonのアプリで利用可能です。もし、Rubyをお使いでしたら、RailsとSinatraを含めた、いかなるRackアプリケーション上で動作することでしょう。
アドオンをインストールするために、以下を実行して下さい:
:::term
$ heroku addons:add newrelic:standard
アドオンをインストールすることで、自動的にHeroku/New Relicの共通アカウントへ統合されます。アドオンは、自動的にNew Relicのプライベートアカウントを作成し、Herokuサーバーへのアクセスを設定します。New Relic APMは、インストール後に収集されたアプリケーションのパフォーマンス、エンドユーザーエクスペリエンス、サーバーパフォーマンスをモニタリングし始めます。
New Relic APMが既にインストール済みであれば、シンプルに上記のインストール方法を実行することでアップグレードが可能です。
アドオンは、プラグインのインストールを行いませんし、設定ファイルの作成も行いません。これらのステップは手動で設定する必要があります。このことは、アプリケーション毎にNew Relicのセッティングを柔軟にカスタマイズすることが可能であることを意味しています。
New RelicをGemfile
へ追加します:
:::ruby
gem 'newrelic_rpm'
gemを追加後、bundle install
を実行し、Gemfile
とGemfile.lock
への変更をコミットして下さい。
Unicornをお使いでしたら、Unicorn用のNew Relic設定を行うために、これらのインストラクションに従って下さい。
このファイルをダウンロードし、config/newrelic.yml
へ保存して下さい。または、下記のコマンドをお使い下さい。New Relicの設定を細かく調整したい場合は、このフィルを修正することで可能となります。
:::term
$ curl https://raw.github.com/gist/2253296/newrelic.yml > config/newrelic.yml
New RelicをRailsアプリ以外で使用する場合、コードのリポジトリへ手動でプラグインをインストールする必要があります。例えば、Sinatraのアプリケーションでは、newrelic
をGemfile
へ追加し、その後で、以下のコードをアプリに追記して下さい。:
:::ruby
configure :production do
require 'newrelic_rpm'
end
次に、アプリケーションの環境を明記して下さい。:
:::term
heroku config:add RACK_ENV=production
最後に、コミットし、Herokuへプッシュして下さい。:
:::term
$ git commit -m "Added New Relic Plugin"
$ git push heroku master
Herokuは、git push
実行時、自動的に最新版のNew RelicのプラグインをRuby製アプリへ適用します。
以下のコマンドを実行するのと同等となります。:
:::term
$ script/plugin install git://github.com/newrelic/rpm.git
Herokuは、config/newrelic.yml
のファイルを適切なアクセスキーで自動設定します。
New Relicは、設定ファイルを編集することで、カスタマイズすることを許可しています。Herokuは、これを自動的に書き出すので、直接、設定ファイルを編集することが出来ません。設定変数をセットすることで、設定ファイルの自動生成値を変更することが可能です。
現在、Herokuでは、apdex scoreのカスタマイズ設定、パラメータのキャプチャー取得、エラーコレクターのカスタマイズをサポートしています。
:::term
$ heroku config:add NEW_RELIC_APDEX=0.4
$ heroku config:add NEW_RELIC_CAPTURE_PARAMS=TRUE
$ heroku config:add NEW_RELIC_ERROR_COLLECTOR_ENABLED=false
$ heroku config:add NEW_RELIC_ERROR_COLLECTOR_CAPTURE_SOURCE=false
$ heroku config:add NEW_RELIC_ERROR_COLLECTOR_IGNORE_ERRORS=ActionController::RoutingError
最新版のJava agentをダウンロードして下さい。最新版をピックアップし、newrelic_agent*.zip
という名称のzipファイルをダウンロードして下さい。(*は最新バージョンの数字となります。)zipファイルには、New Relicのagent jar、初期設定ファイル、API jarが含まれます。
プロジェクトのルートフォルダへ解凍して下さい。アプリケーション内にnewrelic
という名称のディレクトリが作成されますので、そこに必要なファイルを追加して下さい。
これらの変更をアプリケーションにプッシュして下さい。:
:::term
$ git add newrelic
$ git commit -m 'add newrelic'
$ git push heroku master
下記のフラグをHeroku上のJAVA_OPTS設定変数に追記して下さい。:
-javaagent:newrelic/newrelic.jar
現在の設定変数の値を参照することが可能です。:
::: term
$ heroku config
...
JAVA_OPTS => -Xmx384m -Xss512k -XX:+UseCompressedOops
...
値をコピーして、Java agentフラグを追加します。:
:::term
$ heroku config:add JAVA_OPTS='-Xmx384m -Xss512k -XX:+UseCompressedOops -javaagent:newrelic/newrelic.jar'
Adding config vars:
JAVA_OPTS => -Xmx384m -Xss512...lic/newrelic.jar
プロジェクトのルートディレクトリにあるrequirements.txt
へnewrelic
と1行追加して下さい。アプリをデプロイ時、New Relic agentがインストールされます。
newrelic-admin run-program
とProcfile
へ追記することで、webエントリを修正して下さい。下記の例ではrun_gunicorn
管理コマンドで、Djangoを起動しています。
:::python
web: newrelic-admin run-program python hellodjango/manage.py run_gunicorn -b "0.0.0.0:$PORT" -w 3
Python向けのNew Relicに関する詳細は、Pythonへのインストール手順、または、New RelicのPythonトラブルシューティングを参照して下さい。