Skip to content
iwhurtafly edited this page Apr 16, 2013 · 6 revisions

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をアップグレードする方法

New Relic APMが既にインストール済みであれば、シンプルに上記のインストール方法を実行することでアップグレードが可能です。

Rubyの設定方法

アドオンは、プラグインのインストールを行いませんし、設定ファイルの作成も行いません。これらのステップは手動で設定する必要があります。このことは、アプリケーション毎にNew Relicのセッティングを柔軟にカスタマイズすることが可能であることを意味しています。

New RelicをGemfileへ追加します:

:::ruby
gem 'newrelic_rpm'

gemを追加後、bundle installを実行し、GemfileGemfile.lockへの変更をコミットして下さい。

Unicornをお使いでしたら、Unicorn用のNew Relic設定を行うために、これらのインストラクションに従って下さい。

このファイルをダウンロードし、config/newrelic.ymlへ保存して下さい。または、下記のコマンドをお使い下さい。New Relicの設定を細かく調整したい場合は、このフィルを修正することで可能となります。

:::term
$ curl https://raw.github.com/gist/2253296/newrelic.yml > config/newrelic.yml

RackアプリにおけるNew Relic活用方法

New Relicを標準的なRailsアプリで使用している場合、このセクションのステップに従う必要はありません。

New RelicをRailsアプリ以外で使用する場合、コードのリポジトリへ手動でプラグインをインストールする必要があります。例えば、Sinatraのアプリケーションでは、newrelicGemfileへ追加し、その後で、以下のコードをアプリに追記して下さい。:

:::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

Bambooの設定方法

もし、Gemfile内に"newrelic_rpm"を見つけた場合、New Relicのプラグインをインストールすることはありません。

Herokuは、git push実行時、自動的に最新版のNew RelicのプラグインをRuby製アプリへ適用します。 以下のコマンドを実行するのと同等となります。:

:::term
$  script/plugin install git://github.com/newrelic/rpm.git

Herokuは、config/newrelic.ymlのファイルを適切なアクセスキーで自動設定します。

Bambooの設定をカスタマイズする

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の設定方法

New Relicのダウンロードと解凍

最新版の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

Java agentを使用可能とする

下記のフラグを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

Pythonの設定方法

プロジェクトのルートディレクトリにあるrequirements.txtnewrelicと1行追加して下さい。アプリをデプロイ時、New Relic agentがインストールされます。

初期化の方法

newrelic-admin run-programProcfileへ追記することで、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トラブルシューティングを参照して下さい。

Clone this wiki locally