Herokuは、 Rubyを含むさまざまなエージェント言語で Web アプリケーションをホストするための Platform as a Service (PaaS) ソリューションです。 New Relic使用すると、Heroku と メトリックを使用して を拡張できます。このページでは、New Relic の Ruby エージェントを使用して Heroku をホスティング サービスとして使用する場合の特別な考慮事項について説明します。
New Relicエージェント・アドオンのインストール
HerokuにRubyアプリをデプロイした後、New Relicのエージェントをインストールします。
アドオンをインストールすると、New Relicのプライベートアカウントが自動的に作成され、Herokuサーバーへのアクセスが設定されます。New Relic は、アドオンのインストール後に収集されたアプリケーションパフォーマンス、エンドユーザーエクスペリエンス、アプリサーバーのパフォーマンスのモニタリングを開始します。数分後には、データが APM サマリーページ に表示され始めます。
このドキュメントはインストールの役に立ちましたか?
インストール時のトラブルシューティング
New Relic をインストールして設定してから数分以内に、アプリの APM サマリーページにデータが表示され始めるはずです 。データが表示されない場合は、 Ruby エージェントのトラブルシューティングの手順に従ってください 。
既存のNew Relicインストールからのアップグレード
New Relic がすでにインストールされている場合は、Heroku toolbelt コマンドを使用してアドオンを再インストールします。
$heroku config:set NEW_RELIC_APP_NAME='Your Application Name'
HerokuでのRubyエージェントの設定
newrelic.yml
ファイルで New Relic を構成するか、 環境変数を 使用して構成ファイルの値よりも優先することができます。 heroku config:set
を使用して、Heroku アプリケーションのエージェントの設定を変更します。
たとえば、 custom_insights_events.max_samples_stored
設定を 500 に設定するには:
$heroku config:set NEW_RELIC_CUSTOM_INSIGHTS_EVENTS_MAX_SAMPLES_STORED=500
Herokuのホストネーム
どのデータがどのホストから来たのかを知ることで、UIに表示されるメトリクスを特定のホストにフィルタリングすることができます。Herokuでは、dynos内のホスト名は動的に生成されるため、アプリケーション開発者にとっては一般的に意味を持ちません。
バージョン 3.9.5 以降、Ruby エージェントは Heroku dyno 名をホスト名として報告します (例: web.1
)。これにより、特定の dyno 名に限定されたデータを表示できます。heroku.use_dyno_names
設定をfalse
に設定すると、この動作を無効にできます。その後、エージェントはDynamic Hostname
という単一の集約されたプレースホルダー名を使用します。
Dynoのホストネームアグリゲーション
一部の dyno には動的に生成される名前があり、これらは時間の経過とともに多くの一意の値を取る場合があります。例には、Scheduler アドオンによって作成されたscheduler
dyno、およびコマンド ラインでheroku run
を呼び出すことによって作成されたrun
dyno が含まれます。一意のホスト名の数を適切に保つために、Ruby エージェントはscheduler
およびrun
dyno からのデータをscheduler.*
およびrun.*
と呼ばれるホスト名に自動的に集約します。
動的に作成される他の dyno タイプがある場合は、 heroku.dyno_name_prefixes_to_shorten
構成設定を使用して、これらの他の dyno タイプに同じ集計を適用します。
Herokuのロギング
Heroku では、Ruby エージェントのログが標準出力に記録され、エージェント ログと通常のアプリケーション ログが混在します。Ruby エージェントによって生成されたログ エントリには、プレフィックスとして[NewRelic]
タグが含まれます。
Herokuのログを取得するには
次の Heroku ツールベルト コマンドを使用して、
NEW_RELIC_LOG
環境変数がstdout
に設定されていることを確認します。bash$heroku config必要に応じて環境変数をリセットするには、次のように実行します。
bash$heroku config:set NEW_RELIC_LOG="stdout"newrelic.yml
ファイルをエディタで開きます。log_level
をdebug
に変更し、ファイルを保存します。 インデントを変更しないでください。Webアプリを再起動します。
あなたのアプリにトラフィックを発生させ、5分ほど実行します。
以下のHeroku toolbeltコマンドを実行すると、New Relicエージェントからのログのみが表示されます。
bash$heroku logs -n 1500 | grep -i relicログ ファイルを New Relic サポートに送信する場合は、ログ ファイルを
newrelic.yml
、Gemfile
、およびGemfile.lock
と共にサポート チケットに添付してください。newrelic.yml
を再度編集し、log_level
を以前の設定に変更します。 ファイルを保存します。